Kev*_*lan 4 bash shell applescript
这是基于以下答案:
在终端中执行此applescript命令可以正常工作(它会打开一个新窗口并告诉我正常运行时间):
osascript -e 'tell app "Terminal" to do script "uptime"'
Run Code Online (Sandbox Code Playgroud)
但是,尝试将变量作为字符串文字传递不起作用:
cmd="'tell app \"Terminal\" to do script \"uptime\"'"
osascript -e ${cmd}
Run Code Online (Sandbox Code Playgroud)
“ 0:1:语法错误:未知令牌无法在此处发送。(-2740)”
这是怎么回事?
我无法真正解释以下内容为何起作用,但从定义上讲,它与解析Shell中的文本有关。$ cmd周围的引号表明保留了空间。Osa脚本本身对撇号(字母)不太满意,所以我想这就是您的版本不起作用的原因。
您可以这样:
cmd="tell application \"Terminal\" to do script \"uptime\""
osascript -e "$cmd"
Run Code Online (Sandbox Code Playgroud)
至少这对我有用。:)
| 归档时间: |
|
| 查看次数: |
4312 次 |
| 最近记录: |