【发布时间】:2018-01-22 06:59:28
【问题描述】:
我正在做一个 macOS 应用程序,试图在子进程中运行 shell 命令。如果我不将launchPath设置为/usr/bin/env,我会收到错误Couldn't posix_spawn: error 13,为什么会这样?如何在其他路径中运行 shell 命令?
class Helper {
static func shell(launchPath path: String, arguments args: [String]) -> String {
let task = Process()
task.launchPath = path
task.arguments = args
let pipe = Pipe()
task.standardOutput = pipe
task.standardError = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: .utf8)
task.waitUntilExit()
return(output!)
}
}
let res = Helper.shell(launchPath: "/Users/myUserName", arguments: ["ls"]) //error
【问题讨论】: