Выполнение команд оболочки с помощью NSTask - Objective-C Cocoa

Я искал дни и часы для этого, я видел много примеров этого, но не могу понять, как работает NSTask, скажем, я хотел выполнить команду killall Dock или defaults write com.apple.Finder AppleShowAllFiles YES что-то вроде этого, как бы я это сделал.

Я знаю, как выполнить внешнюю оболочку script (sh), но вам нужно быть более сложным и вместо этого использовать NSTask.

Спасибо за любую помощь!

Ответы

Ответ 1

Вы можете сделать что-то вроде:

NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/bash"];
[task setArguments:@[ @"-c", @"/usr/bin/killall Dock" ]];
[task launch];

Точно, какой путь запуска и аргументы вы предоставляете, продиктована командой, которую вы хотите запустить, и ее параметрами.