如何使用Swift从cocoa应用程序运行shell脚本?
我有一个shell脚本file.sh,我想在我的cocoa应用程序中运行。我怎么能用Swift做到这一点?
任何帮助表示赞赏! :)
答案 0 :(得分:6)
您可以使用NSTask
(API reference here)。
NSTask
需要launchPath
指向您的脚本(除其他外)。它也可以使用arguments
数组,当您准备好启动任务时,您可以在其上调用launch()
。
所以......有些东西:
var task = NSTask()
task.launchPath = "path to your script"
task.launch()
您可以查看:
希望对你有所帮助。
答案 1 :(得分:4)
我在网上找到了这个功能:
ON DELETE SET NULL
这是电话:
@discardableResult
private func shell(_ args: String) -> String {
var outstr = ""
let task = Process()
task.launchPath = "/bin/sh"
task.arguments = ["-c", args]
let pipe = Pipe()
task.standardOutput = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
if let output = String(data: data, encoding: .utf8) {
outstr = output as String
}
task.waitUntilExit()
return outstr
}