如何使用Swift从cocoa应用程序运行shell脚本?

Seb*_*bbe 2 shell terminal cocoa swift

如何使用Swift从cocoa应用程序运行shell脚本?

我有一个shell脚本file.sh,我想在我的cocoa应用程序中运行.我怎么能用Swift做到这一点?

任何帮助赞赏!:)

pbo*_*dsk 7

您可以使用NSTask(此处的API参考).

A NSTask(其中包括)launchPath指向您的脚本的a.它也可以使用一系列,arguments当您准备好启动任务时,您可以调用launch()它.

所以......有些东西:

var task = NSTask()
task.launchPath = "path to your script"
task.launch()
Run Code Online (Sandbox Code Playgroud)

你想了解更多吗

你可以看看:

希望对你有所帮助.


Cri*_*ian 5

我在网上找到了这个功能:

@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
}
Run Code Online (Sandbox Code Playgroud)

这是电话:

shell("sh /pathToSh/file.sh")
Run Code Online (Sandbox Code Playgroud)