使用NSTask运行shell脚本会导致posix_spawn错误

时间:2014-08-28 23:38:12

标签: objective-c macos shell posix nstask

我尝试使用以下代码运行带有NSTask的shell脚本:

NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/Users/username/connect.sh"];
[task launch];

但我得到An uncaught exception was raisedCouldn't posix_spawn: error 8

如果我只是在终端中运行脚本,一切正常。

以下是脚本包含的内容:

if [ ! -d ~/Remote/username/projects  ] 
then  
        sshfs -C -p 22 user@remotecomputer.com:/home/username ~/Remote/username        
fi

2 个答案:

答案 0 :(得分:8)

您还可以将phpinfo();添加到脚本的开头:

#!/bin/bash

答案 1 :(得分:3)

你需要像这样使用setLaunchPath:

[task setLaunchPath:@"/bin/sh"];

然后对您的脚本使用setArguments:

[task setArguments: [NSArray arrayWithObjects: @"~/connect.sh", nil]];