redirectbas​​h输出和所有命令的错误

如何将在bash上执行的所有命令redirect到/ dev / null?

很明显,对于我们必须做的一个命令:

command > /dev/null 2>&1 

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

只需启动一个新的shell:

 bash >/dev/null 2>&1 

现在你可以输入盲目的命令:)如果你想离开那个模式,请输入: exit

但是盲目输入命令通常不是你想要的。 所以我建议创建一个像script.sh这样的文本文件,把你的命令放在里面:

 command1 foo command2 bar 

并执行它使用:

 bash script.sh >/dev/null 2>&1 

该脚本中所有命令的输出将立即重定向到/ dev / null

不使用命令就可以使用exec

 exec > /dev/null 2>&1 

正如hex2mgl指出的那样,如果你在一个交互式shell中这样做,你甚至不会再看到你的提示,因为shell会打印到标准错误。 我认为这是用于脚本,因为忽略交互式运行命令的所有输出没有太大的意义:)

对于脚本或其他实际目的,将命令分组是一个很好的解决方案。 检查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.