我正试图用NSTask运行一个shell脚本,代码如下:
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/Users/username/connect.sh"];
[task launch];
但我得到了An uncaught exception was raised
和Couldn'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]];