ユーザー入力に基づいて変数を設定しようとしています。ユーザーが「ボタンを返す:はい」または「ボタンを返す:いいえ」として応答するように設定したことを知っています。
ボタンが「はい」を返す場合は、変数を「True」に設定したいと思います。ボタンが「No」を返す場合は「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に設定されます。これはmacOSシステムで実行するように設計されたbashスクリプトです。
答え1
スクリプトのコピーの末尾に次の行を追加します。
echo "r: '$response'; v: '$var'; b: '$reboot'"
次の出力を提供します。
r: 'button returned:yes'; v: 'button returned:yes '; b: 'False'
osascript
出力にスペースが追加されているように見え、"string"
不平等が原因で"string "
テストは期待どおりに実行されません。