Кнопки не работают корректно с osascript

#bash #button #scripting #osascript

#bash #кнопка #сценарии #osascript

Вопрос:

У меня есть диалоговое окно с двумя кнопками: «OK» и «Отмена», я бы хотел, чтобы кнопка «OK» запускала веб-сайт, а кнопка «Отмена» останавливала скрипт. Прямо сейчас кнопки «OK» и «Отмена» запускают веб-сайт. Чего мне здесь не хватает?

 osascript -e 'tell app "System Events" to display dialog "Things are broke r rPress OK to launch Google" buttons {"Cancel", "OK"}'
if [ "button returned:OK" ]; then 
    open "http://www.google.com"
else
    exit 0
fi
  

Комментарии:

1. я думаю if..else так if [[ $* = *"button returned:OK"* ]] …?

Ответ №1:

Есть несколько вариантов. Первое, может быть, проще:

 osascript -e 'tell app "System Events" to display dialog "Things are broke r rPress OK to launch Google" buttons {"Cancel", "OK"}' >/dev/null 2>amp;1
if [ $? -eq 0 ]; then open "http://www.google.com"; else exit 0; fi
  

Или захватить и проанализировать вывод osascript , подобный этому:

 res=$(osascript -e 'tell app "System Events" to display dialog "Things are broke r rPress OK to launch Google" buttons {"Cancel", "OK"}' 2>/dev/null)
  

Затем вы можете проверить это следующим образом:

 if [[ $res == *OK* ]]; then 
  echo OK
fi