Установка переменной Bash с помощью osascript всегда неверна.

Я пытаюсь установить переменную на основе ввода данных пользователем. Я знаю, что то, что я настроил для запроса пользователя, будет либо отвечать «кнопка вернулась: да», либо «кнопка вернулась: нет».

Я бы хотел, чтобы для переменной было установлено значение «Истина», если кнопка возвращает «Да». и "False", если кнопка возвращает "нет".

Вот что у меня есть на данный момент:

response="button returned:yes"
var=`/usr/bin/osascript -e 'display dialog "Is a reboot required?" buttons {No,Yes}'`
/bin/test "$response" = "$var" && reboot="True" || reboot="False"

Что я делаю не так? Переменная $ reboot всегда имеет значение false, независимо от ввода пользователя. Это сценарий bash, предназначенный для запуска в системе macOS.

0
01.06.2017, 18:40
1 ответ

Добавление этой строки в конец копии вашего скрипта:

echo "r: '$response'; v: '$var'; b: '$reboot'"

дает этот вывод:

r: 'button returned:yes'; v: 'button returned:yes '; b: 'False'

Кажется, что osascriptдобавляет пробел к выходным данным, и, поскольку "string"не равно "string ", ваш тест не работает так, как вы ожидаете.

1
28.01.2020, 02:45

Теги

Похожие вопросы