2014-08-28 16 views
8

Tôi đang cố gắng để chạy một kịch bản shell với NSTask với đoạn mã sau:Chạy shell script với NSTask gây posix_spawn lỗi

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

Nhưng tôi nhận được An uncaught exception was raisedCouldn't posix_spawn: error 8

Nếu tôi chỉ cần chạy script trong thiết bị đầu cuối, mọi thứ đều hoạt động.

Đây là những gì kịch bản bao gồm:

if [ ! -d ~/Remote/username/projects ] 
then 
     sshfs -C -p 22 [email protected]:/home/username ~/Remote/username   
fi 

Trả lời

2

Bạn cần phải sử dụng setLaunchPath như thế này:

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

Sau đó sử dụng setArguments cho kịch bản của bạn:

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

Bạn cũng có thể thêm #!/bin/bash vào đầu tập lệnh của bạn:

#!/bin/bash 

if [ ! -d ~/Remote/username/projects ] 
then 
    sshfs -C -p 22 [email protected]:/home/username  ~/Remote/username   
fi 
Các vấn đề liên quan