
ユーザー入力に基づいて変数を設定しようとしています。ユーザーにプロンプトを表示するように構成したものは、「ボタンが返されました: はい」または「ボタンが返されました: いいえ」のいずれかで応答することがわかっています。
ボタンが「はい」を返す場合は変数を「True」に設定し、ボタンが「いいえ」を返す場合は変数を「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 "
、テストは期待どおりに動作しません。