2014-08-28 17 views
8

Próbuję uruchomić skrypt z NSTask z następującego kodu:Running skrypt z NSTask powoduje błąd posix_spawn

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

Ale pojawia An uncaught exception was raised i Couldn't posix_spawn: error 8

Gdybym tylko uruchomić skrypt w terminalu wszystko działa.

Oto co skrypt zawiera:

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

Odpowiedz

2

Trzeba użyć setLaunchPath tak:

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

Następnie użyj setArguments dla skryptu:

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

można również dodaj #!/bin/bash do początku skryptu:

#!/bin/bash 

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