/ / L'esecuzione dello script di shell con NSTask causa l'errore posix_spawn - goal-c, macos, shell, posix, nstask

L'esecuzione dello script di shell con NSTask causa l'errore posix_spawn - ogg-c, macos, shell, posix, nstask

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 № 1

Devi 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