确定输出是 stdout 还是 stderr

Rau*_*fle 28 linux stderr stdout

如何确定进程输出的是 stdout 还是 stderr?

Red*_*ick 30

我只知道三种方法来确定程序将向 STDOUT 输出什么以及向 STDERR 输出什么

  1. 阅读文档。或者

  2. 尝试重定向†

  3. 用红色打印 STDERR

†例如:

program > program.stdout 2> program.stderr

然后查看两个输出文件,看看程序写了什么到 STDOUT 和写了什么到 STDERR。

tee如果您需要输出继续到屏幕以及文件中,您可以通过管道代替重定向。见/sf/ask/48440031/

  • 我通常使用选项 3 的变体:`program | grep .` 以红色打印 STDOUT。 (20认同)

zeb*_*h49 9

根据您评论的要求:

{ { command; } 2>&3 | sed 's/^/STDOUT: /'; } 3>&1 1>&2 | sed 's/^/STDERR: /'
Run Code Online (Sandbox Code Playgroud)

  • 看起来令人印象深刻。但是你介意把樱桃加到你的树上,并解释它在做什么吗?不是这里的每个人都是大师——而且你的结构有点复杂;) (3认同)