Може ли някой да ми помогне да конвертирам следния код в код, който вместо това има две NSTasks за "cat" и "grep", показвайки как двете могат да бъдат свързани заедно с тръби? Предполагам, че бих предпочел последния подход, тъй като тогава вече не трябва да се притеснявам за цитиране и други неща.
NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: @"/bin/sh"];
NSArray *arguments;
arguments = [NSArray arrayWithObjects: @"-c",
@"cat /usr/share/dict/words | grep -i ham", nil];
[task setArguments: arguments];
[task launch];
Актуализация: Имайте предвид, че cat и grep тук са предназначени просто като (лош) пример. Все още искам да направя това за команди, които имат повече смисъл.
cat
, когато е възможно.grep
приема множество файлови аргументи след шаблона, така че трябва да използватеgrep -i ham /usr/share/dict/words
. И вижте: проблемът ви изчезва, тъй като можете да стартиратеgrep
директно и вече нямате нужда от тръба. - person Jeremy W. Sherman   schedule 05.06.2011