mac用户登录时自动运行shell脚本应使用launchagent配置(推荐),或applescript封装为应用、自动操作创建工作流程添加至登录项;直接放启动盘或改/etc/rc.local已失效。

Mac用户登录时自动运行Shell脚本,需将脚本注册为当前用户的启动代理,而非系统级开机服务;直接把脚本扔进启动盘或修改/etc/rc.local在现代macOS中已完全失效,且可能触发安全拦截。
用LaunchAgent配置登录后自动执行(推荐)
这是Apple官方推荐的用户级启动机制,能正确加载~/.zshrc等环境、支持日志输出、失败时可查错误原因,适用于绝大多数自动化办公或开发场景。
第一步:打开终端,创建配置目录:mkdir -p ~/Library/LaunchAgents
第二步:用nano新建plist文件:nano ~/Library/LaunchAgents/local.autorun.plist
第三步:粘贴以下内容(【务必替换/path/to/your/script.sh为脚本的绝对路径】,不能用~符号,必须写成/Users/xxx/xxx.sh):
第四步:按Control+O保存→回车确认→Control+X退出nano
第五步:给脚本加可执行权限:chmod +x /path/to/your/script.sh
第六步:立即加载配置:launchctl load ~/Library/LaunchAgents/local.autorun.plist。注销再重新登录即可验证是否生效。
用AppleScript封装后添加为登录项(免XML)
适合不熟悉XML语法、想快速验证脚本能否跑通,或者需要图形界面交互反馈的用户。
方法一:静默后台运行(无终端窗口)
打开“脚本编辑器”,新建文档,粘贴以下内容(替换脚本路径):do shell script "/path/to/your/script.sh > /dev/null 2>&1 &"
→ 文件 → 导出 → 格式选“应用程序”,名称如“MyAutoRunner”,保存到Applications文件夹。
方法二:带终端窗口调试(推荐首次测试)
同样在脚本编辑器中输入:
tell application "Terminal"<br> do script "cd ~ && /path/to/your/script.sh"<br>end tell
→ 导出为应用程序,勾选“运行前显示此脚本”。
两种导出的应用程序都可直接拖入“系统设置→通用→登录项”中添加。注意:【添加后务必勾选右侧‘隐藏’复选框,否则每次登录都会弹出终端窗口】。
用“自动操作”创建工作流程并设为登录项
可视化操作,适合不想碰代码、但需要条件判断或多个步骤串联的用户,比如“先检查网络再同步文件”这类逻辑。
① 打开“自动操作”应用,点击左上角“新建工作流程”。
② 在左侧“资源库”中找到“实用工具”→拖入“运行 Shell 脚本”操作。
③ 点击该操作,在下方命令框中输入:/path/to/your/script.sh,Shell选/bin/zsh。
④ 点击右上角“运行”按钮测试是否成功执行。
⑤ 工作流程测试通过后,点击菜单栏“文件→存储”,保存为.app格式(如SyncWorkflow.app)。
⑥ 将生成的.app文件拖入“系统设置→通用→登录项”即可。











