gpt4 book ai didi

swift - 尝试在 Swift 中运行简单的 Bash 命令 - 'Couldn' t posix_spawn : error 13'

转载 作者:行者123 更新时间:2023-11-30 10:38:17 29 4
gpt4 key购买 nike

我正在尝试构建一个可以从 GUI 输入运行 bash 命令的 MacOS 应用程序,但在第一个障碍上就失败了。我一直在使用this question's答案作为引用,但似乎对我不起作用。这是我的代码:

import Foundation

@IBAction func buttonClicked(_ sender: Any) {
shell("ls")
}

@discardableResult
func shell(_ args: String...) -> Int32 {
let task = Process()
task.launchPath = "/Users/myUser/desktop"
task.arguments = args
task.launch()
task.waitUntilExit()
return task.terminationStatus
}

我见过其他人询问此错误,但他们得到此错误的原因略有不同,这意味着我似乎无法找到解决该问题的特定实例的方法。

有什么想法吗?

编辑 - 如果有人能给我一个提示,告诉我如何将 ls 命令的输出返回到我的程序中,例如存储为字符串,那就太好了。

最佳答案

对于一个简单的终端应用程序,这就是我使用的

func shell(_ command: String) -> String {
let task = Process()
task.launchPath = "/bin/bash"
task.arguments = ["-c", command]

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

let data = pipe.fileHandleForReading.readDataToEndOfFile()

guard let output = String(data: data, encoding: .utf8) else {
print("Failed to produce string from \(data)")
abort()
}

return output
}

关于swift - 尝试在 Swift 中运行简单的 Bash 命令 - 'Couldn' t posix_spawn : error 13',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57394288/

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