【发布时间】:2013-05-17 18:14:57
【问题描述】:
如何将 bash 上执行的所有命令重定向到 /dev/null ?
很明显,对于一个命令我们必须做的:
command > /dev/null 2>&1
接下来要执行的所有命令怎么样?
【问题讨论】:
标签: linux bash output dev-null
如何将 bash 上执行的所有命令重定向到 /dev/null ?
很明显,对于一个命令我们必须做的:
command > /dev/null 2>&1
接下来要执行的所有命令怎么样?
【问题讨论】:
标签: linux bash output dev-null
只需启动一个新的 shell:
bash >/dev/null 2>&1
现在您可以输入命令 blind :) 如果您想离开该模式,请输入:exit
但是盲目地输入命令通常不会是你想要的。所以我建议创建一个像script.sh 这样的文本文件,把你的命令放在里面:
command1 foo
command2 bar
然后使用以下命令执行它:
bash script.sh >/dev/null 2>&1
该脚本中所有命令的输出现在将被重定向到 /dev/null
【讨论】:
/usr/bin/bash 而不是bash。顺便说一句,您使用的是哪个系统?
在没有命令的情况下使用exec:
exec > /dev/null 2>&1
正如 hex2mgl 所指出的,如果您在交互式 shell 中执行此操作,您甚至不会再看到您的提示,因为 shell 会将其打印到标准错误中。我认为这是针对脚本的,因为忽略交互式运行的命令的所有输出没有多大意义:)
【讨论】:
/dev/null。
exec 2>/dev/null。但这仍会将您的输入和提示重定向到/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.
【讨论】: