重定向所有命令的bash输出和错误

时间:2013-05-22 15:42:02

标签: linux bash output dev-null

如何将bash上执行的所有命令重定向到/ dev / null?

很明显,对于我们必须执行的命令:

command > /dev/null  2>&1

如何进一步执行所有命令?

3 个答案:

答案 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.