我正在运行一个自定义脚本,其中包含bash应该知道的命令(ios-sim)(二进制文件位于/ usr / local / bin,$ PATH知道)。但是,当由xcodebuild调用时,控制台会记录“未找到命令”。
我能够手动执行命令,但我不知道为什么它在运行脚本中不起作用。我已经检查了用户,但正如我预期的那样,它们都是同一个用户......
调用ios-sim的行:
ios-sim launch $(dirname $TEST_HOST) $environment_args --args -SenTest All $test_bundle_path -v
答案 0 :(得分:7)
不是依赖$PATH
,其值不明显,而是使用ios-sim
的整个路径。
编辑自定义脚本并进行更改:
ios-sim launch ...
到
/usr/local/bin/ios-sim launch ...
使用$PATH
的原因可能是危险的(可能过于强烈),因为它的设置并不明显。例如,Xcode将使用/etc/launchd.conf
中配置的路径,/usr/local/bin
或/etc/profile
中可能添加了~/.bash_profile
。
launchd
使用/etc/profile
中的值,然后将其传递给Xcode使用?/etc/profile
还是~/.bash_profile
?复杂而彻底地理解这个环境无疑会让你通过$PATH
调用你的命令,但是使用命令的完整路径是一个总是有效的简单方法。