gpt4 book ai didi

swift - 如何在 Swift 3 for Linux 中使用 Process()?

转载 作者:搜寻专家 更新时间:2023-10-30 21:56:41 26 4
gpt4 key购买 nike

以下函数在 macOS 上执行 Swift 3 中的进程。但是,如果我在 Ubuntu 中运行相同的代码,我会收到错误消息,指出 Process is an unresolved identifier。

如何在适用于 Ubuntu 的 Swift 3 中运行进程/任务并获取其输出?

import Foundation

// runs a Shell command with arguments and returns the output or ""
class func shell(_ command: String, args: [String] = []) -> String {

let task = Process()
task.launchPath = command
task.arguments = args

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

let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output: String? = String(data: data,
encoding: String.Encoding.utf8)
task.waitUntilExit()

if let output = output {
if !output.isEmpty {
// remove whitespaces and newline from start and end
return output.trimmingCharacters(in: .whitespacesAndNewlines)
}
}
return ""
}

最佳答案

我目前无法自己测试,但根据源代码 https://github.com/apple/swift-corelibs-foundation/blob/master/Foundation/NSTask.swift ,相应的类(仍然)在 Linux 上称为 Task,而不是 Process与在 Apple 平台上一样。

关于swift - 如何在 Swift 3 for Linux 中使用 Process()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39764801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com