2012-05-30 110 views
2

我想運行一個簡單的任務,必須執行回聲的 「Hello World」NSTask - 執行echo命令

那麼這裏是我的代碼:

NSTask *task; 
    task = [[NSTask alloc] init]; 


    [task setLaunchPath:@"/bin/bash"]; 




    NSArray *arguments; 

    arguments = [NSArray arrayWithObjects:@"echo","hello world" nil]; 
    [task setArguments: arguments]; 

    NSPipe *pipe; 
    pipe = [NSPipe pipe]; 
    [task setStandardOutput: pipe]; 
    [task setStandardError: pipe]; 

    NSFileHandle *file; 
    file = [pipe fileHandleForReading]; 



    [task launch]; 
    //... 
    //Code to get task response 

繼續給我沒有這樣的文件或目錄錯誤 ..我做錯了什麼?

+4

你爲什麼想有殼做到這一點? NSTask的優點之一就是不必經過shell。你可以直接運行echo命令(獨立版本,而不是bash的)。 –

+1

@Peter Hosey關注如何通過NSTask獨立運行echo命令? – eonist

回答

3

執行命令的正確途徑是

bash -c "echo 'hello world'" 

這意味着你應該通過參數是

arguments = [NSArray arrayWithObjects:@"-c", @"echo 'hello world'", nil]; 
+0

謝謝:D這幫了我很多.. –