OSX从shell返回到Xcode swift

OSX从shell返回到Xcode swift,xcode,macos,shell,swift,Xcode,Macos,Shell,Swift,我有调用shell的代码。Shell对参数进行一些测试,如果通过,它将运行。 现在,我将任何错误发布到日志文件中,但希望将它们返回到我的swift程序中 let bundle = NSBundle.mainBundle() let cmd = bundle.pathForResource("model", ofType: "sh") let task = NSTask() task.launchPath = cmd task.arguments = [ "

我有调用shell的代码。Shell对参数进行一些测试,如果通过,它将运行。 现在,我将任何错误发布到日志文件中,但希望将它们返回到我的swift程序中

    let bundle = NSBundle.mainBundle()
    let cmd = bundle.pathForResource("model", ofType: "sh")
    let task = NSTask()
    task.launchPath = cmd
    task.arguments = [ "\(arg1.stringValue)",  "\(arg2.stringValue)" ]
    task.launch()

这是可行的,但是如果不读取在shell中创建的日志文件,如何获得shell的输出呢。希望能有帮助

在github发布的项目也可能有用:


遇到了这个问题。希望能有帮助

在github发布的项目也可能有用:


遇到了这个问题。希望能有帮助

在github发布的项目也可能有用:


遇到了这个问题。希望能有帮助

在github发布的项目也可能有用:

#!/usr/bin/env xcrun swift -i

import Foundation

let task = NSTask()
task.launchPath = "/bin/echo"
task.arguments = ["first-argument", "second-argument"]

let pipe = NSPipe()
task.standardOutput = pipe
task.launch()

let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output: String = NSString(data: data, encoding: NSUTF8StringEncoding)

print(output)
assert(output == "first-argument second-argument\n")