Objective-C执行Shell

代码如下

#import <Foundation/Foundation.h>

@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 的标准输出中读取结果,并将其转换成字符串类型,最后返回。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值