Answers:
我得到的行为与您描述的相同。在Ubuntu 11.10上
top | grep "my_program" > top.log
不产生任何输出。
我相信这是因为grep正在缓冲其输出。要告诉GNU grep逐行吐出输出,请使用以下--line-buffered
选项:
top | grep --line-buffered "my_program" > top.log
另请参阅此SO问题以了解其他潜在解决方案。
您应该使用:
top -n 1 | grep "blah" > top.log
“ -n 1”会先运行一次,然后退出,而不是每隔几秒钟不断更新
因为您只是在寻找一条线,但是ps将是更好的使用工具。
-b
选项top
或ps
代替。