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



我正试图用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

您还可以将#!/bin/bash添加到脚本的开头:

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

您需要像这样使用setLaunchPath:

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

然后为脚本使用setArguments:

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

最新更新