如何在终端osascript调用中不存储文件执行多条AppleScript命令
osascript 不落地文件执行多条AppleScript语句的解决方案
之前写法失效的原因
- AppleScript原生不支持用
;作为多条语句的分隔符 - 双引号包裹的字符串中转义的
\n不会被osascript识别为语句换行分隔符 then关键字仅可用于if等条件控制语句,不能用于连接普通顺序执行的语句
可行方案
方案1:使用多个-e参数传递多条语句
osascript本身支持传入多个-e选项,每个选项对应一条AppleScript语句,会按传入顺序执行:
osascript -e 'set x to 0' -e 'display dialog x'
方案2:结合shell的Here Document传入多行语句
如果语句较多,用here doc的方式可读性更高,不需要额外创建本地文件:
osascript <<EOF set x to 0 display dialog x EOF
如果需要在AppleScript中使用shell变量,去掉EOF的单引号,就可以直接在脚本里引用$变量名。
内容的提问来源于stack exchange,提问作者gurkensaas
相关产品推荐
相关产品推荐

