控制台重定向stdout & stderr

来源:互联网 发布:网络短信诈骗的论文 编辑:程序博客网 时间:2024/05/16 19:28

控制台重定向stdout & stderr

通常,一个控制台(命令提示符)应用程序或命令的输出将发送到两个单独的流.常规的输出发送到标准出 (stdout) 并将错误消息发送到标准错误(stderr).当你重定向控制台输出使用">"符号,只重定向标准输出.要重定向stderr,必须指定"2 >"的重定向符号.这将选择第二个输出流stderr。

示例
$ kill -HUP 1234 >killout.txt 2>killerr.txt
这个命令就会将输出和错误信息分别存放在一个单独的文件中.如果我们要将这两个输出放在一个文件中,我们可以使用>&来组合这两种输出.如:
$ kill -1 1234 >killouterr.txt 2>&1
这个命令就可以将所有的输出放在同一个文件中.在这里我们要注意的就是命令的顺序.这个命令的顺序可以解释为重定向标准输出到文件killouterr.然后重定向标准错误输出到与标准输出同一的地方.如果我们弄错了顺序,我们就不会得到我们希望的输出.
在这里我们会看到kill命令的结果使用了返回代码,然而常常是我们并不需要保存标准输出或是标准错误输出.我们可以使用UNIX中的/dev/null来忽略所有的错误输出.如:
$ kill -1 1234 >/dev/null 2>&1