这是基于对以下问题的回答:
执行此 applescript 命令在终端中运行良好(它会打开一个新窗口并告诉我正常运行时间):
osascript -e 'tell app "Terminal" to do script "uptime"'
但是,尝试将变量作为字符串文字传递是行不通的:
cmd="'tell app \"Terminal\" to do script \"uptime\"'"
osascript -e ${cmd}
“0:1:语法错误:此处不能放置未知标记。(-2740)”
这是怎么回事?
最佳答案
我无法真正解释为什么下面的代码有效,但它明确地与在 shell 中解析文本有关。 $cmd 周围的引号确保空间被保留。 Osa 脚本本身对撇号(单引号)不太满意,所以我想这就是您的版本不起作用的原因。
你可以这样做:
cmd="tell application \"Terminal\" to do script \"uptime\""
osascript -e "$cmd"
至少这对我有用。 :)
关于bash - 带有 bash 和 applescript 的字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29155752/