Sto cercando di eseguire uno script di shell con NSTask con il seguente codice:
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/Users/username/connect.sh"];
[task launch];
Ma capisco An uncaught exception was raised
e Couldn"t posix_spawn: error 8
Se eseguo semplicemente lo script nel terminale, tutto funziona.
Ecco cosa contiene lo script:
if [ ! -d ~/Remote/username/projects ]
then
sshfs -C -p 22 user@remotecomputer.com:/home/username ~/Remote/username
fi
risposte:
3 per risposta № 1Devi usare setLaunchPath in questo modo:
[task setLaunchPath:@"/bin/sh"];
Quindi usa setArguments per il tuo script:
[task setArguments: [NSArray arrayWithObjects: @"~/connect.sh", nil]];
4 per risposta № 2
Puoi anche aggiungere #!/bin/bash
all'inizio della tua sceneggiatura:
#!/bin/bash
if [ ! -d ~/Remote/username/projects ]
then
sshfs -C -p 22 user@remotecomputer.com:/home/username ~/Remote/username
fi