Как использовать YAD в сценарии Bash?

Поэтому я пишу небольшой сценарий bash для автоматизации нескольких задач... и я наткнулся на проблему здесь.. моя проблема

  val=$ ( yad --center --width=300 --height=100 --title "Alert" --image "dialog-question" --buttons-layout=center --text "Search for Broadcast Stations ?" \ --button=gtk-yes:0 --button=gtk-no:1 )   

if [[ $val == 0 ]]; then

Вышеупомянутый фрагмент кода не работает... я пытаюсь сохранить код завершения YAD-окна в переменной val, а затем использовать его в операторе if then.... какую ошибку я здесь делаю???? я знаю, что проверка состояния выхода составляет $? но я полностью потерян на том, как на самом деле реализовать это, хотя..!!

2 ответа

Это полный рабочий пример, основанный на примерах YAD Wiki:

val=$(yad --center --width=300 --height=100 --title "Alert" --image "dialog-question" --buttons-layout=center --text "Search for Broadcast
Stations ?" --button=gtk-yes:0 --button=gtk-no:1 )   
ret=$?

[[ $ret -eq 1 ]] && echo "No clicked" && exit 0

if [[ $ret -eq 0 ]]; then
    echo "Yes clicked"
    exit 0
fi

Последний ответ отлично работает, расширенный ... кнопки 2 и 1 используются для «да» и «нет», чтобы здесь все было случайным. 252 - код выхода. длинная строка Yad представлена ​​одной строкой, чтобы избежать проблем с переносом слов. Простой Yad диалоговое окно да/нет.

      question=$(yad --center --width=300 --height=100 --title "Question" --image "dialog-question" --buttons-layout=center --text "Search for Broadcast Stations?" --button=gtk-yes:2 --button=gtk-no:1 )
answer=$?
[[ $answer -eq 252 ]] && echo "Window Closed" && exit 1
[[ $answer -eq 0 ]] && echo "Unused"
[[ $answer -eq 1 ]] && echo "No clicked" && exit 0
if [[ $answer -eq 2 ]]; then
    echo "Yes clicked"
fi
exit 0
Другие вопросы по тегам