【发布时间】:2020-08-23 23:01:37
【问题描述】:
我正在尝试创建一个涉及允许用户运行终端命令的 macOS 应用程序。我可以运行命令,但据我所知,它是从我的应用程序内的目录运行的。运行pwd 返回/Users/<me>/Library/Containers/<My app's bundle identifier>/Data。
如何选择命令从哪个目录运行?
我也在寻找让cd 工作的方法,但如果我可以选择从哪个目录运行终端命令,我可以手动处理cd。
这是我目前用来运行终端命令的代码:
func shell(_ command: String) -> String {
let task = Process()
let pipe = Pipe()
task.standardOutput = pipe
task.arguments = ["-c", command]
task.launchPath = "/bin/zsh"
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: .utf8)!
return output
}
我在 Big Sur 上使用 Xcode 12。
谢谢!
【问题讨论】:
标签: swift terminal zsh macos-big-sur