
我正在嘗試根據用戶輸入設定一個變數。我知道我配置為提示用戶的內容將響應“按鈕返回:是”或“按鈕返回:否”。
如果按鈕返回“是”,我希望將變數設為“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。這是一個 bash 腳本,旨在在 macOS 系統上運行。
答案1
將此行新增至腳本副本的末尾:
echo "r: '$response'; v: '$var'; b: '$reboot'"
給出這個輸出:
r: 'button returned:yes'; v: 'button returned:yes '; b: 'False'
似乎osascript
在輸出中附加了一個空格,並且由於"string"
不等於"string "
,因此您的測試無法按您的預期運行。