Mac环境下脚本执行报错“open: command not found”求助
解决Mac下执行脚本时"open: command not found"及环境变量设置问题
看起来你遇到的问题主要来自脚本的语法错误和环境变量路径的小坑,我来帮你一步步解决:
问题根源拆解
launchctl setenv用法错误:你在一行里同时设置两个环境变量是不允许的,这个命令一次只能处理一个变量,语法错误会导致脚本执行异常,进而影响后续的open命令执行;- 脚本里的
PATH缺失:终端交互环境的PATH包含了open命令所在的/usr/bin目录,但脚本执行时如果没有继承完整的环境变量,就会找不到这个命令; - 多余的shebang:脚本里有两个
#!/bin/bash,第二个会被当作注释,虽然不致命,但属于不规范写法。
修正后的脚本
把你的脚本改成下面这样,就能正常工作了:
#!/bin/bash # 逐个设置环境变量,每个变量单独一行 launchctl setenv USERNAM "ttt" launchctl setenv PASSWORD "1234" # 使用open命令的绝对路径,彻底避免PATH问题 /usr/bin/open -a "IntelliJ IDEA"
后续操作步骤
- 给脚本添加执行权限:在终端里运行以下命令(把
your-script.sh换成你的脚本文件名):chmod +x your-script.sh - 执行脚本:在脚本所在目录运行:
./your-script.sh
额外提示
- 如果你发现IntelliJ还是读不到设置的环境变量,记得重启IDEA(不过你是设置后立即打开,应该没问题);
- 如果需要让这些环境变量对所有GUI应用生效,你可能需要重新登录系统,不过你的场景下当前脚本足够用了。
内容的提问来源于stack exchange,提问作者user6556881




