【发布时间】:2017-03-14 16:37:42
【问题描述】:
我正在寻找一种在 Swift (macOS) 中运行终端命令的方法。我遇到了this 的帖子,但我似乎无法让任何解决方案发挥作用。我正在尝试从我的应用程序中关闭我的 mac,就像您可以从终端 (osascript -e 'tell app "loginwindow" to «event aevtrsdn»') 一样,但每当我这样做时,我都会收到错误消息:Couldn't posix_spawn: error 13。
我正在使用此代码:
func shell(launchPath: String, arguments: [String] = []) -> (String? , Int32) {
let task = Process()
task.launchPath = launchPath
task.arguments = arguments
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, task.terminationStatus)
}
我是这样称呼它的:
let z = shell(launchPath: "/usr/bin/osascript", arguments: ["-e", "\'tell app \"loginwindow\" to «event aevtrsdn»\'"])
有什么帮助吗?
【问题讨论】:
标签: swift