使用 osascript 設定 Bash 變數總是不正確。

使用 osascript 設定 Bash 變數總是不正確。

我正在嘗試根據用戶輸入設定一個變數。我知道我配置為提示用戶的內容將響應“按鈕返回:是”或“按鈕返回:否”。

如果按鈕返回“是”,我希望將變數設為“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 ",因此您的測試無法按您的預期運行。

相關內容