像top | grep chromium
这样的命令让我对CPU和内存负载的时间趋势为 STDOUT 。我试图将此输出传递给top | grep chromium >> load.log
失败的文件(没有错误,但 load.log 保持为空)。
top
?答案 0 :(得分:2)
top | grep --line-buffered chromium >> load.log
当grep写入tty时,其输出是行缓冲的。当它被重定向到文件时,它的输出被完全缓冲,这意味着它只刷新每4096个字节。 --line-buffered
选项会覆盖此行为,强制它在每行后刷新stdout。
此行为并非grep独有;任何使用libc的标准C程序都会发生这种情况。您可以使用stdbuf
强制任意程序进行行缓冲。
top | stdbuf -oL grep chromium >> load.log