在macos中,可通过脚本编辑器启用脚本菜单,并将applescript封装的shell命令或automator工作流程存入~/library/scripts/实现点击运行;需注意权限设置、路径规范及shell环境一致性。
在 macos 中,把自定义脚本变成终端菜单项(即点击菜单就能运行),核心是利用系统原生的“脚本编辑器”+“脚本菜单”机制,再配合终端可执行命令或 applescript 封装。这不是给 terminal app 添加按钮,而是让脚本出现在屏幕右上角的 脚本菜单 中,且能直接调用终端命令或启动终端执行任务。
启用并配置脚本菜单
这是所有后续操作的前提:
- 打开“脚本编辑器”(Spotlight 搜索即可)
- 菜单栏选 脚本编辑器 → 设置 → 在菜单栏显示脚本菜单
- 此时右上角会出现一个卷轴图标( Scripts ),点开就是你的脚本入口
将 Shell 脚本封装为可点击的菜单项
终端本身不支持直接添加菜单项,但你可以用 AppleScript 包一层,让它自动唤起终端并执行命令:
- 在“脚本编辑器”中新建文档,输入类似内容:
do shell script "say '开始运行' && cd ~/Projects && git pull"
或更稳妥地调用终端:tell application "Terminal"<br> do script "cd ~/Documents && python3 backup.py"<br> activate<br>end tell
- 保存为 脚本文件(.scpt),不是应用,也不是快捷指令
- 前往
~/Library/Scripts/(若不存在可手动创建),把 .scpt 文件放进去 - 刷新脚本菜单(或重启脚本编辑器),该脚本就会出现在菜单里
让 Automator 工作流程也进脚本菜单
如果你习惯用 Automator 写流程(比如“运行 Shell 脚本”+“显示通知”),也能接入:
- 在 Automator 中新建“快速操作”,添加所需动作,保存为 工作流程文件(.workflow)
- 把它复制到
~/Library/Scripts/下同级目录的Automator/子文件夹中(路径需手动建) - 或更简单:用 Automator 导出为“应用程序”,再用脚本编辑器包装成 .scpt 调用它(
tell application "YourApp" to launch)
权限与路径注意事项
脚本菜单里的脚本默认以当前用户权限运行,但某些操作仍需确认:
- 涉及文件写入、辅助功能、全盘访问等,需在 系统设置 > 隐私与安全性 中开启对应权限
- Shell 脚本若用相对路径(如
./deploy.sh),请确保终端启动时工作目录正确;建议用绝对路径或先cd /full/path - 如果脚本依赖 zsh 或特定环境变量,终端默认可能用 bash 启动,可在 Terminal 设置中指定 shell,或显式写
zsh -c "..."











