欢迎各位兄弟 发布技术文章
这里的技术是共享的
osascript -e
是 macOS 终端中的一个命令,用于执行 AppleScript 或 JavaScript (JXA) 代码片段。下面详细解释它的作用和使用方法:
bashosascript -e "代码"
osascript
:macOS 的系统工具,用于运行 AppleScript 或 JavaScript (JXA) 脚本。
-e
(即 -execute
的缩写):
直接执行紧随其后的脚本代码(而非从文件加载)。
可以多次使用 -e
来拼接多行代码(例如 osascript -e "代码1" -e "代码2"
)。
执行 AppleScript 代码
bashosascript -e 'tell application "Finder" to display dialog "Hello, macOS!"'
弹出一个对话框显示 "Hello, macOS!"。
执行 JavaScript (JXA) 代码
bashosascript -l JavaScript -e 'Application("Finder").displayDialog("Hello from JXA!")'
需通过 -l JavaScript
指定语言(默认是 AppleScript)。
系统操作
控制应用:
bashosascript -e 'tell app "Safari" to activate'
获取信息:
bashosascript -e 'tell app "System Events" to get name of every process'
与其他命令结合(如 curl
)
bashosascript -e 'display notification "Download complete" with title "任务完成"'
完成下载后发送通知。
引号处理:如果脚本中包含引号,需根据 Shell 规则转义(例如用反斜杠 \"
或交替使用单/双引号)。
多行代码:用多个 -e
拼接:
bashosascript -e 'tell app "Finder"' -e 'display dialog "Multi-line example"' -e 'end tell'
权限问题:某些操作(如控制应用)需在 系统设置 > 隐私与安全性 中授予终端权限。
bash# 发送带声音的通知 osascript -e 'display notification "邮件已送达" with title "新邮件" sound name "Ping"' # 获取当前播放的歌曲(Music.app) osascript -e 'tell app "Music" to get name of current track'
通过 osascript -e
,你可以快速测试脚本或将其集成到 Shell 脚本中,实现高效的自动化操作。