使用 stdbuf -o 0 |& tee log 时没有 stderr 输出

使用 stdbuf -o 0 |& tee log 时没有 stderr 输出

我想使用以下命令记录运行程序的标准输出和错误信息:

  stdbuf -o 0 ./myprogram|& tee mylog

它在一台计算机上运行良好,我可以在屏幕和mylog.但在另一台计算机上,我只能在 screen 和 中看到标准输出mylog。它们都是 Fedora 操作系统和 x86_64。

答案1

尝试使 stdout 和 stderr 都无缓冲。

stdbuf -e 0 -o 0 ./myprogram |& tee mylog

编辑:我替换了原来的答案。以上很可能是问题的解决方案。

答案2

如果 COMMAND 调整其标准流的缓冲(例如“tee”),那么这将覆盖“stdbuf”更改的相应设置。

请在这里阅读;https://linux.die.net/man/1/stdbuf

相关内容