2014-08-28 4 views
8

Я пытаюсь запустить скрипт с NSTask со следующим кодом:Запуск оболочки сценария с NSTask вызывает posix_spawn ошибка

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 [email protected]:/home/username ~/Remote/username   
fi 

ответ

2

Вы должны использовать setLaunchPath так:

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

Затем используйте setArguments для вашего сценария:

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

Вы можете также добавьте #!/bin/bash в начало вашего скрипта:

#!/bin/bash 

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