You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS Launch Job执行bash脚本返回异常代码126问题求助

问题原因

你遇到的Operation not permitted报错是 macOS 系统自带的 TCC(透明度、同意与控制权)安全机制导致的,既不属于脚本本身的执行权限不足,也不属于启动用户的常规权限不足:

  • 你的脚本存放在/Users/intern/Desktop/路径下,桌面、文档、下载这类用户目录都属于 macOS 默认的受保护路径
  • 你在终端手动执行脚本时,终端已经提前拿到了对应路径的访问授权,所以可以正常运行;但launchd运行任务时使用独立的服务上下文,默认没有访问用户受保护目录的权限,就会触发权限拦截
解决方案

你可以任选以下任意一种方案解决:

方案1(更推荐,无需修改系统权限)

把脚本移动到不受 TCC 限制的公共路径,操作步骤:

  1. 把testing.sh移动到/usr/local/bin/目录下(如果目录不存在可以先执行sudo mkdir -p /usr/local/bin创建)
  2. 修改plist文件里ProgramArguments对应的脚本路径为/usr/local/bin/testing.sh
  3. 重新加载plist生效:
launchctl unload ~/Library/LaunchAgents/com.intern.testing.plist
launchctl load ~/Library/LaunchAgents/com.intern.testing.plist

方案2(保留脚本原路径)

给launchd授予全磁盘访问权限:

  1. 打开「系统设置」→「隐私与安全性」→「全磁盘访问」
  2. 点击左下角解锁按钮,输入密码确认
  3. 按下快捷键Command + Shift + G,输入路径/sbin/launchd,选中后添加到权限列表
  4. 重启电脑后重新触发任务即可
额外补充说明

你10月4日修改脚本时出现的变量赋值语法错误也会导致执行失败:bash的变量赋值不允许等号两侧加空格,fileName = "/tmp/a.txt"是错误写法,必须写成fileName="/tmp/a.txt",你后续修改后的版本已经修正了该问题,不需要再调整。

内容的提问来源于stack exchange,提问作者festivezine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:15:04