如何将bash上执行的所有命令重定向到/ dev / null?
很明显,对于我们必须执行的命令:
command > /dev/null 2>&1
如何进一步执行所有命令?
答案 0 :(得分:5)
只需启动一个新shell:
bash >/dev/null 2>&1
现在您可以输入命令 blind :)如果您想离开该模式类型:exit
但盲目输入命令通常不是你想要的。所以我建议创建一个像script.sh
这样的文本文件,将命令放在其中:
command1 foo
command2 bar
然后使用:
执行它bash script.sh >/dev/null 2>&1
该脚本中所有命令的输出将被重定向到/ dev / null now
答案 1 :(得分:3)
在没有命令的情况下使用exec
:
exec > /dev/null 2>&1
正如hex2mgl指出的那样,如果你在一个交互式shell中执行此操作,你甚至不会再看到你的提示,因为shell会将其打印到标准错误。我假设这是用于脚本的,因为忽略交互式运行的命令的所有输出没有多大意义:)
答案 2 :(得分:0)
对于脚本或其他实际目的,对命令进行分组是一个很好的解决方案。检查http://www.gnu.org/software/bash/manual/html_node/Compound-Commands.html具体说明Any redirections (see Redirections) associated with a compound command apply to all commands within that compound command unless explicitly overridden.