4

我正在运行一个自定义脚本,其中包含一个命令(ios-sim),bash 应该知道该命令(二进制文件位于 /usr/local/bin 中,$PATH 知道)。但是,当由 xcodebuild 调用时,控制台会记录“找不到命令”。

我可以手动执行命令,但我不知道为什么它在运行脚本中不起作用。我已经检查了用户,但正如我所料,这两次都是同一个用户......

调用 ios-sim 的行:

ios-sim launch $(dirname $TEST_HOST) $environment_args --args -SenTest All $test_bundle_path -v
4

1 回答 1

8

与其依赖$PATH价值不明显的 ,不如使用整个路径到ios-sim.

编辑您的自定义脚本并更改:

ios-sim launch ...

/usr/local/bin/ios-sim launch ...

using$PATH可能很危险(可能是一个太强的词)的原因是它的设置位置并不明显。例如,Xcode 将使用在中配置的路径,/etc/launchd.conf并且/usr/local/bin可能已添加到/etc/profileor中~/.bash_profile

  • 是否会launchd使用其中的值/etc/profile,从而将其传递给 Xcode 使用?
  • 由 Xcode 启动的脚本会使用/etc/profile~/.bash_profile吗?

对这个环境的复杂和透彻的理解无疑会让你通过 调用你的命令$PATH,但是使用命令的完整路径是一种简单的方法,它总是有效的。

于 2013-02-04T11:16:19.983 回答