Objective c 通过NSTask执行bash命令的结果

Objective c 通过NSTask执行bash命令的结果,objective-c,cocoa,nstask,Objective C,Cocoa,Nstask,我有一个在Objective-C中使用NSTask的例子 NSTask *task = [[NSTask alloc] init]; [task setLaunchPath:@"/bin/bash"]; [task setArguments:@[ @"-c", @"cp /Directory/file /users/user_name/Desktop" ]]; [task launch]; 我想知道[task setArguments://code>是否返回执行该命令的成功或失败状态,并保存该

我有一个在Objective-C中使用
NSTask
的例子

NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/bash"];
[task setArguments:@[ @"-c", @"cp /Directory/file /users/user_name/Desktop" ]];
[task launch];
我想知道
[task setArguments://code>是否返回执行该命令的成功或失败状态,并保存该状态以供以后检查。我怎样才能得到那个结果

我想知道
[task setArguments://code>是否返回执行该命令的成功或失败状态,并保存该状态以供以后检查

为什么您认为设置尚未启动和运行的任务的参数可能会返回运行命令的状态

我怎样才能得到那个结果

阅读
NSTask
、其方法
waitUntilExit
及其属性
terminationStatus
的文档


也就是说,@ItaiFerber在评论中提出,希望这只是一个示例,您并不是真的使用
NSTask
来运行
cp

为什么要以这种方式复制文件,而不是使用更直接的API呢?(它有)
    NSPipe *pipe = [[NSPipe alloc] init];
    NSFileHandle *file = pipe.fileHandleForReading;
    NSTask *task = [[NSTask alloc] init];
    [task setLaunchPath:@"/bin/bash"];
    [task setArguments:@[ @"-c", @"cp /Directory/file /users/user_name/Desktop" ]];
    task.standardOutput = pipe;
    [task launch];
    if(task.isRunning)
        [task waitUntilExit];

    int status = [task terminationStatus];
    if(status == 0){}