Как использовать 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