在我的bash脚本中,我有:
program=*program_name*
condition=$(which $program 2>/dev/null | grep -v "not found" | wc -l)
if [ $condition -eq 0 ] ; then
echo "$program is not installed";
echo -n *mypass* |sudo -S gem install $program;
fi
首先,它每次都安装程序。它显示程序未安装,但我可以从终端使用它。
...然后,我需要在我的可可应用程序中使用这个程序,例如
program --help
使用
system([pathToFile UTF8String]);
我得到:
path_to_bundle/myBashScript.sh: Permission denied // Where path is in bundle
path_to_folder/myBashScript.sh:line 30: program: command not found // Where path is from other system folder
使用NSTask
我每次都会获得program: command not found
。
我不明白为什么会这样。我想知道如何在我的可可应用程序中使用这个程序。
答案 0 :(得分:1)
所以,我找到了解决方案 当您尝试从cocoa应用程序运行自定义系统程序时,您应该提供二进制文件的完整路径。
问题在于:
program=*program_name*
*program_name*
应该是二进制文件的完整路径,在我的例子中它是/Library/Ruby/Gems/2.0.0/gems/program-version/bin/program
有关安装路径的其他信息: https://wiki.haskell.org/Mac_OS_X_Common_Installation_Paths http://help.rubygems.org/discussions/problems/739-how-to-run-applications-installed-by-gem