使用 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 ",因此您的测试无法按您的预期运行。

相关内容