[英]Running a shell script from Swift/MacOS
过去我可以使用这个函数成功运行 shell 脚本:
typealias runShellClosure = (_ jsonString:String) -> Void
func runShell(_ command: String, completion: runShellClosure) {
let task = Process()
task.launchPath = "/bin/zsh"
task.arguments = ["-c", command]
let pipe = Pipe()
task.standardOutput = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output: String = NSString(data: data, encoding: String.Encoding.utf8.rawValue)! as String
completion(output)
}
今天我安装了 YQ(使用 Homebrew) - YQ 将 YAML 文件转换为 JSON。
在终端中进行测试:
yq r -j ~/Desktop/xxxxxxx/swagger/yml/up-api.yaml
并收到了预期的结果。 在我的应用程序中,我将相同的命令传递给 runShell 函数:
我收到command not found
错误。
不知道我做错了什么。 我刚刚切换到 Catalina,但将 shell 切换回 Bash 会返回相同的结果。
谢谢
编辑:我可以运行这个命令:
ls ~/Desktop/Xandr/swagger/yml/
并得到预期的结果。 此外,沙盒也被禁用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.