【发布时间】:2022-01-22 20:42:37
【问题描述】:
我想让下面的代码适用于 Swift,没有/dev/null 2>&1 的代码可以正常工作,只要我添加/dev/null 2>&1,它就不起作用,我怎样才能正确添加它?
let task = Process()
task.executableURL = URL(fileURLWithPath: "/bin/bash/dev/null 2>&1")
task.arguments = ["-c", """
echo "Hello, world!"
cd ${HOME}
cd Desktop
mkdir "New Folder"
echo "Folder is Successfully created!"
"""]
task.launch()
【问题讨论】:
-
不清楚。
2>&1表示将错误输出 (stderr) 放入正常输出 (stdout)。那么 ""/bin/bash/dev/null 2>&1"" 怎么可能是文件路径呢?如果在task,如果你不读取输出,那么检查输出,但不打印呢?错误一也一样。 -
@Larme:我在 Bash 方面并不先进,但就我现在而言,
2>&1应该静音以防万一。同样正如我在问题中提到的,我在询问正确的用例方式,我只是自己添加。需要学习正确的方法。 -
@ioscoder 你这里的脚本只是一个示例脚本,还是你真的想在
$HOME/New Folder创建一个新目录?因为如果是后者,您根本不需要为此使用Process或bash:FileManager将是正确的方法。 -
@ItaiFerber:非常感谢,但我希望它在 swift 中用于 bash 目的。有一段时间我想要静音打印。