5

我需要能够在 shell 脚本中运行 AppleScript。我正在使用“AppleScript Runner”以处于交互模式,以便支持对话框等。我已经让它工作了,但我需要将 AppleScript Runner 应用程序的退出状态返回到 shell,这样我才能查看脚本中是否有任何错误。

这是我的shell脚本:

output=$(/usr/bin/osascript << EOT
tell application "AppleScript Runner"
do script "somescript.scpt"
end
EOT)

status=$?

在这里,我的变量 $status 仅以 osascript 命令的退出状态结束(无论 somescript.scpt 实际运行是否成功,它都将为 0),而不是应用程序 AppleScript Runner 的退出状态。

有谁知道我可以如何做到这一点?

谢谢!

4

1 回答 1

2

-e 标志将错误打印到 stderr 并且是默认值。所以你只需要阅读stderr。

如果您对此不熟悉,此答案可能会对您有所帮助:

bash 变量分别捕获 stderr 和 stdout 或获取退出值

编辑:添加了示例代码。

error=`osascript -e 'tell app "Finder" to adtivate' 2>&1`
echo $error

我系统上的上述内容捕获了错误消息。

于 2011-04-11T19:42:56.827 回答