Swift 当命令可以';t执行“;“未找到命令”;

Swift 当命令可以';t执行“;“未找到命令”;,swift,xcode,macos,swift4,nstask,Swift,Xcode,Macos,Swift4,Nstask,我正在尝试从我的应用程序运行终端命令/脚本,一切正常,但当命令错误且无法执行时,我得到如下结果: 但是这个“/bin/bash:line…”字符串不在我从任务中获得的输出字符串中,是否有任何方法可以在我的应用程序中获取这些错误,或者以任何方式获得它们发生的通知 我的代码 //创建新任务 让任务:进程=进程() task.environment=env task.launchPath=“/usr/bin/env” task.arguments=[“/bin/bash”,“-c”,command.

我正在尝试从我的应用程序运行终端命令/脚本,一切正常,但当命令错误且无法执行时,我得到如下结果:

但是这个“/bin/bash:line…”字符串不在我从任务中获得的输出字符串中,是否有任何方法可以在我的应用程序中获取这些错误,或者以任何方式获得它们发生的通知

我的代码

//创建新任务
让任务:进程=进程()
task.environment=env
task.launchPath=“/usr/bin/env”
task.arguments=[“/bin/bash”,“-c”,command.scriptCode]
//指定输出管道
让管道:管道=管道()
释放句柄:FileHandle=pipe.fileHandleForReading
task.standardOutput=管道
outHandle.readabilityHandler={pipe in
如果let line=String(数据:pipe.availableData,编码:String.encoding.utf8){
如果行包含(“未找到命令”){

//从不触发您要查找的对象是
NSTask
进程
类的属性。将管道分配给此属性,就像您使用
标准输出
一样。您要查找的对象是
NSTask
进程
类的属性。将管道分配给此属性,就像您所做的一样使用
standardOutput

时,bash会将消息写入stderr,这样您就可以捕获
任务。standardError
与捕获
任务的方式相同。standardOutput
。由于按预期工作,Xcode只会自动完成标准输出:或者bash会将消息写入stderr,因此您可以捕获
任务.standardError
与捕获任务的方式相同。standardOutput
。感谢按预期工作,Xcode只自动完成了标准输出:o