我正在尝试创建一个涉及允许用户运行终端命令的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。
谢谢!
有一个过时的属性 currentDirectoryPath
上Process
。
假设您不想使用不推荐使用的属性,请先阅读文档的文档,FileManager
然后查看管理当前目录及其含义的规定。
或者只是cd
按照您的考虑使用–您正在zsh
以shell命令行作为参数启动shell()。命令行可以包含多个用分号分隔的命令,因此您可以cd
在command
值前面加上a 。
后一种方法避免更改当前进程的当前目录。
高温超导
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句