我花了相当多的时间研究如何在Swift中运行特定的终端/ shell命令。
问题是,我害怕实际运行任何代码,除非我知道它的作用。 (我在过去执行终端代码时运气很差。)
我发现this question似乎告诉我如何运行命令,但我对Swift来说是全新的,我想知道每条线的作用。
此代码的每一行有什么作用?
let task = NSTask()
task.launchPath = "/bin/sh"
task.arguments = ["-c", "rm -rf ~/.Trash/*"]
task.launch()
task.waitUntilExit()
答案 0 :(得分:3)
/bin/sh
调用shell -c
将实际的shell命令作为字符串rm -rf ~/.Trash/*
删除垃圾箱中的所有文件 -r
表示递归。 -f
意味着被迫。您可以通过阅读终端中的man
页面了解有关这些选项的更多信息:
man rm
答案 1 :(得分:1)
当我写这个问题时,我发现我能找到很多答案,所以我决定发布问题并回答它以帮助像我这样的人。
//makes a new NSTask object and stores it to the variable "task"
let task = NSTask()
//Tells the NSTask what process to run
//"/bin/sh" is a process that can read shell commands
task.launchPath = "/bin/sh"
//"-c" tells the "/bin/sh" process to read commands from the next arguments
//"rm -f ~/.Trash/*" can be whatever terminal/shell command you want to run
//EDIT: from @CodeDifferent: "rm -rf ~/.Trash/*" removes all the files in the trash
task.arguments = ["-c", "rm -rf ~/.Trash/*"]
//Run the command
task.launch()
task.waitUntilExit()
" / bin / sh"更清楚地描述here.