请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

top和awk组合获得top输出的第一行时为什么总是被卡住?

top -d 1| awk 'NR==1{print $0}'

这里我想每秒获得一次负载情况,为什么上面的表达式不行,总是被卡住?此处该如何解决?

正在回答 回答被采纳积分+3

2回答

翔仔 2021-02-25 23:07:38

同学好,请勿自己回复自己的问题,不然我这边看不到更新。。 top的话不支持实时管道,所以不能这样用。建议可以先用定时脚本,每隔一段时间执行top指令,将其打印到一个文件里,然后再通过 grep 文件并且结合 awk 来输出格式化的数据

0 回复 有任何疑惑可以回复我~
  • 提问者 mahsiaoko #1
    不支持实时管道什么意思?我之前使用top和grep组合使用的时候,可以不停的输出相应的内容,我使用的事 top | grep myConsumer;这里的myConsumer是程序名称
    回复 有任何疑惑可以回复我~ 2021-02-26 10:20:12
  • 翔仔 回复 提问者 mahsiaoko #2
    awk是根据一屏的内容输出的(静态),top是不断产生数据的(动态)
    回复 有任何疑惑可以回复我~ 2021-02-26 23:28:10
提问者 mahsiaoko 2021-02-24 16:21:08

https://img1.sycdn.imooc.com//szimg/60360d6c09632b2b09790119.jpg

这里只能取得第一次的负载情况,我觉得好像是NR==1这个不对。但是每次top刷新后,第一行不该都是

top - 16:26:45 up  1:40,  2 users,  load average: 0.08, 0.02, 0.01


这种吗?

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号