2014-08-28 20 views
8

Aşağıdaki kod ile NSTask ile bir kabuk komut dosyasını çalıştırmak çalışıyorum neden olur:Running kabuk komut dosyası posix_spawn hata

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

Ama sadece senaryoyu çalıştırırsanız ben An uncaught exception was raised ve Couldn't posix_spawn: error 8

olsun Terminalde her şey çalışıyor. Ayrıca şunları da yapabilirsiniz

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

cevap

2

Böyle setLaunchPath kullanmak gerekir: Burada

komut içeriyor budur Komut dosyanızın başına #!/bin/bash ekleyin:

#!/bin/bash 

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

:

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

Sonra komut dosyası için setArguments kullanın:

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