Par exemple, j'ai ce simple script bash:NSTask avec le problème de script bash
#!/bin/sh
cd $1;
Et cette enveloppe de cacao pour elle:
NSTask *cd = [[NSTask alloc] init];
NSString *testFolder = [NSString stringWithString:@"/Users/test/Desktop/test 1"];
[cd setLaunchPath:@"/bin/sh"];
[cd setArguments:[NSArray arrayWithObjects:[[NSBundle mainBundle]
pathForResource:@"cd" ofType:@"sh"],testFolder, nil]];
[cd launch];
[cd release];
C'est ne fonctionne pas correctement. Et le problème est l'espace dans le nom du dossier dans testFolder. J'essaie de mettre testFolder
comme ceci:
NSString *testFolder = [NSString stringWithString:@"/Users/test/Desktop/test\\ 1"]
Mais ceci est aussi la sortie même erreur:
cd.sh: line 9: cd: /Users/test/Desktop/test: No such file or directory
chemins sans espaces (par exemple: @"/Users/test/Desktop/test1"
) fonctionne aussi bien.
J'ai cherché pourquoi je recevais "chemin de lancement non accessible" et votre inclusion de votre code m'a fait réaliser que j'avais besoin de [cd setLaunchPath: @ "/ bin/sh"]; Ce n'est pas votre question, mais c'était toujours utile – stifin