BASH Shell重定向输出和错误到/dev/null
时间:2020-01-09 10:39:34 来源:igfitidea点击:
如何在bash/sh shell脚本下将输出和错误重定向到/dev/null?
如何将stderr的输出重定向到stdout,然后将此组合的输出重定向到/dev/null设备?
在Unix中,如何将错误消息重定向到/dev/null?
您可以使用command>/dev/null
语法将输出发送到/dev/null。
但是,这在命令将使用标准错误(FD#2)时不起作用。
因此,您需要按如下所示修改>/dev/null,以将输出和错误均重定向到/dev/null。
语法将错误和输出消息重定向到/dev/null
下面讨论的语法可用于类似Bourne的shell,例如sh,ksh和bash:
$ command > /dev/null 2>&1 $ ./script.sh > /dev/null 2>&1 $ ./example.pl > /dev/null 2>&1
或者
command &>/dev/null job arg1 arg2 &>/dev/null /path/to/script arg1 &>/dev/null
您还可以对所有cronjob使用相同的语法,以避免发送电子邮件和输出/错误消息:
@hourly /scripts/backup/nas.backup >/dev/null 2>&1
或者
@hourly /scripts/backup/nas.backup &>/dev/null
将标准错误和标准输出消息都重定向到日志文件
您始终可以通过执行以下命令将标准错误(stdin)和标准输出(stdout)文本都重定向到输出文件或日志文件:
command > file 2>&1 /path/to/my/cool/appname > myapp.log 2>&1
是否要关闭在Linux/Unix/BSD/OSX bash shell上执行的命令的stdout和stderr?
尝试以下语法:
## Thanks http://www.theitroad.local/faq/how-to-redirect-output-and-errors-to-devnull/#comment-40252 ## command 1>&- 2>& ## Note: additional '&' at the end of job to put it in backgrounds ## job 1>&- 2>&- & command 1>&- 2>&- &