2013-10-29 46 views
0

我的情况: OSX 10.9 +的Xcode 4.6.3 +运行脚本阶段+脚本:如何在运行脚本阶段停止XCode替换系统命令?

#!/bin/bash 

/usr/bin/svn --version 
ls -la /usr/bin/svn 
exit 1 

我收到的输出:

svn, version 1.6.18 (r1303927) 
-rwxr-xr-x 1 root wheel 14224 26 oct 05:08 /usr/bin/svn 

这是令人难以置信的。大小和实际文件的日期与v1.7.10对应(这实在是放置在路径/usr/bin/svn),但在Xcode中调用这个文件,就会调用/Application/Xcode463.app/Content/Developer/usr/bin/svn命令!

我如何避免这种情况?我怎么能打电话给我的默认/usr/bin/svn命令? 怎么可能做到隐藏替换另一个命令,而无需更换真正的文件?

+0

我做很多事情剧烈,但我不会建议你做吧.. 采取的/ usr/bin中/ SVN的备份并妥善保管的地方.. 现在删除在/ usr/bin中/ SVN和创建一个新的软链接说在/ usr/bin中/ SVN会调用该/Application/Xcode463.app/Content/Developer/usr/bin/svn ... 以防万一,这并不工作,你可以在它原来的地方更换备份文件 – Ashish

回答

0

正确的答案是:/usr/bin/svn是对xcrun包装的链接。命令来查看它:

nm /usr/bin/svn 

所以,问题的根源是下一个命令:

xcode-select --print-path 
在运行脚本阶段

将打印当前的Xcode,而不是系统默认的Xcode。

相关问题