如何从我的Cocoa应用程序运行shell命令?

时间:2009-12-01 22:30:25

标签: shell cocoa terminal

我想通过代码从我的Cocoa应用程序运行一个简单的命令,不是创建一个shell脚本并以这种方式运行它,而是通过应用程序运行它,能够定义所有内容并动态更改它。

4 个答案:

答案 0 :(得分:6)

答案 1 :(得分:4)

功能

 void runSystemCommand(NSString *cmd)
    {
        [[NSTask launchedTaskWithLaunchPath:@"/bin/sh"
            arguments:[NSArray arrayWithObjects:@"-c", cmd, nil]]
            waitUntilExit];
    }

用法示例:

#import <Foundation/Foundation.h>

void runSystemCommand(NSString *cmd)
{
    [[NSTask launchedTaskWithLaunchPath:@"/bin/sh"
        arguments:[NSArray arrayWithObjects:@"-c", cmd, nil]]
        waitUntilExit];
}

int main(int argc, const char **argv)
{
    NSAutoreleasePool *pool;

    pool = [NSAutoreleasePool new];

    runSystemCommand(@"ls");
    [pool release];
    return 0;
}

答案 2 :(得分:1)

街头派对给出的答案大部分时间都不起作用,请参阅本文

http://www.cocoadev.com/index.pl?NSTaskArguments

答案 3 :(得分:0)

正如其他人所指出的那样,NSTask是要走的路。但是,如果您的脚本需要以管理员权限运行,那么总是STPrivilegedTask