如何将在bash上执行的所有命令重定向到/ dev/null?所有命令的重定向bash输出和错误
很明显,一个命令我们必须做的:
command > /dev/null 2>&1
怎么样将进一步执行的命令?
如何将在bash上执行的所有命令重定向到/ dev/null?所有命令的重定向bash输出和错误
很明显,一个命令我们必须做的:
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现在
对于脚本编写或其他实际用途,对命令进行分组是个不错的解决方案。检查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.
使用exec
说没有一个命令:
exec > /dev/null 2>&1
由于hex2mgl指出的那样,如果你这样做在一个交互的shell,你甚至不会看到你的提示了,因为壳打印到标准错误。我认为这是为脚本设计的,因为忽略交互式运行命令的所有输出没有多大意义:)
终端被阻止 – TheForbidden
它没有被阻止;所有输出(标准输出和标准错误,包括您的提示)已被重定向到'/ dev/null',按要求。 – chepner
,如果我只想重定向错误输出? – TheForbidden
bash?这是一个命令吗? – TheForbidden
当然是。它会启动一个新的'bash'外壳。 – hek2mgl
我得到这个: [1] 13407 庆典:2:没有这样的文件或目录 1:未找到 [1] +出口127的bash 2>的/ dev/null的 – TheForbidden