Objective-C执行Shell

代码如下

#import 

@interface ShellCommand : NSObject

+ (NSString *)executeCommand:(NSString *)command;

@end

@implementation ShellCommand

+ (NSString *)executeCommand:(NSString *)command {
    NSTask *task = [[NSTask alloc] init];
    [task setLaunchPath:@"/bin/sh"];
    [task setArguments:@[@"-c", command]];
    NSPipe *pipe = [NSPipe pipe];
    [task setStandardOutput:pipe];
    [task setStandardError:pipe];
    [task launch];
    [task waitUntilExit];
    NSData *data = [[pipe fileHandleForReading] readDataToEndOfFile];
    NSString *output = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    return output ?: @"";
}

@end

这个示例带啊吗定义了一个名为 ShellCommand 的 Objective-C 类,其中实现了一个名为 executeCommand 的类方法,它接受一个字符串类型的参数 command 表示要执行的命令,返回一个字符串类型的标准输出结果。使用了 Foundation 框架中的 NSTask 类来执行命令和读取输出结果。我们通过创建一个 NSTask 对象来启动 /bin/sh 进程,并设置其 arguments 属性来传入需要执行的命令。在设置完毕 LaunchPath 和 Arguments 后,我们调用 task launch() 方法来启动进程,并使用 task waitUntilExit() 方法等待命令执行完成。在执行完成后,我们从 task 的标准输出中读取结果,并将其转换成字符串类型,最后返回。

你可能感兴趣的:(各语言执行shell,objective-c,开发语言)