Execução da linha de comando do cacau / Objective-C Shell

Esta é provavelmente uma pergunta estúpida, mas como posso executar um comando shell do meu aplicativo Cocoa?

Eu tenho o comando como uma string “comando”, mas pode facilmente manipular dados conforme necessário.

Não há necessidade de obter um valor de saída retornado.

NSTask é muito fácil de fazer isso. Para uma chamada síncrona, você pode usar algo como este fragment:

NSString *path = @"/path/to/executable"; NSArray *args = [NSArray arrayWithObjects:..., nil]; [[NSTask launchedTaskWithLaunchPath:path arguments:args] waitUntilExit]; 

A chamada -waitUntilExit garante que termine antes de continuar. Se a tarefa pode ser assíncrona, você pode remover essa chamada e deixar o NSTask fazer isso.

Se você quer apenas executar alguma coisa e não se importa com o código de saída ou retorno (por exemplo, você quer tocar em um arquivo), você pode apenas fazer

 system("touch myfile.txt"); 

Fácil assim.

NSTask

Usando a class NSTask, seu programa pode executar outro programa como um subprocess e pode monitorar a execução desse programa.