【发布时间】:2017-03-20 21:22:03
【问题描述】:
我花了很多时间研究如何在 Swift 中运行特定的终端/shell 命令。
问题是,除非我知道它的作用,否则我害怕实际运行任何代码。 (过去我在执行终端代码时运气不佳。)
我找到了this question,它似乎向我展示了如何运行命令,但我对 Swift 完全陌生,我想知道每一行的作用。
这段代码的每一行是做什么的?
let task = NSTask()
task.launchPath = "/bin/sh"
task.arguments = ["-c", "rm -rf ~/.Trash/*"]
task.launch()
task.waitUntilExit()
【问题讨论】:
-
大多数时候,顺便说一句,最好生成一个显式的 argv 而不涉及 shell;但是,在这里,您依赖 shell 为您执行 globbing(在调用
rm之前将*扩展为文件名列表)。 -
(将
~扩展到用户的主目录也是shell 在当前情况下正在执行的一项工作,如果您想不使用它,则需要更换)。跨度>