我想使用以下命令记录运行程序的标准输出和错误信息:
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”更改的相应设置。