Сценарий оболочки Какао Objective-C из приложения? - PullRequest
3 голосов
/ 03 января 2012

У меня есть приложение, которое я создаю, и я хотел бы запустить сценарии оболочки из него.Один из сценариев создает файл .plist, а другой - исправление для двоичного файла.Причина, по которой вы хотите сделать это с помощью сценария оболочки, заключается в том, что я знаю, что он работает для двух вещей, для которых он мне нужен.Я уверен, что есть способ сделать это с Objective-C / Какао, хотя я не знаю как, поэтому любые рекомендации о том, как этого добиться, будут высоко оценены

Ответы [ 2 ]

5 голосов
/ 03 января 2012

Вам нужно будет использовать NSTask.NSTask - система для запуска любой команды терминала.Вот как вы можете использовать его для выполнения сценария оболочки:

NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/path/to/script/sh"];
[task setArguments:[NSArray arrayWithObjects:@"yourScript.sh", nil]];
[task setStandardOutput:[NSPipe pipe]];
[task setStandardInput:[NSPipe pipe]];

[task launch];
[task release];

Это будет запускать команду /path/to/script/sh yourScript.sh.Если вам нужны какие-либо аргументы для вашего скрипта, вы можете добавить их в массив аргументов.Стандартный вывод перенаправит весь вывод в объект конвейера, который вы можете подключить, если хотите вывести в файл.Причина, по которой нам нужно использовать еще один NSPipe для ввода, состоит в том, чтобы NSLog работал правильно, а не входил в сценарий.

Если вам нужна дополнительная информация о том, как работает NSTask, см. thisответить .

3 голосов
/ 03 января 2012

Самый простой способ, который я знаю, это NSTask .Это как команда терминала, из которой вы можете вызвать свой bash-скрипт.

...