linux – “监视”命令中的清除屏幕
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – “监视”命令中的清除屏幕,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1489字,纯文字阅读大概需要3分钟。
内容图文
![linux – “监视”命令中的清除屏幕](/upload/InfoBanner/zyjiaocheng/966/8a5662a073204eeabc791cab43a7752e.jpg)
在使用watch命令监视程序完成之前,我通常从同一个shell运行很多程序. (我稍微过滤了ps命令,但这个例子比较简单.)
sleep 10 && for i in {1..100}; do echo $i; done &
watch -n 5 ps aux
watch命令清除终端,以便命令输出清晰且没有混乱.
当另一个程序输出例如示例中的echo语句时,结果有点奇怪.它打印奇怪,结果似乎取决于输出的大小.即使watch应该重新运行“ps aux”命令,它也不会覆盖“echo”命令的输出.
是否有这样的东西会阻止其他程序的输出覆盖手表输出?
watch -n 5 ClearScreenSomehow && ps aux
解决方法:
我不知道是否有一种简单的方法可以做到这一点.直到有人提出一个,这是一个复杂的方法来做到这一点:
将原始案例视为控件:
#delayed print to clutter up watch later
bash -c 'sleep 10; echo ASDF' &
#watch dummy command, observe cluttering
watch -n1 'ls -la |head -25'
我的方法是劫持所有可能使窗口混乱的进程,并将其输出抛出到/ dev / null的深渊中.
重定向已在运行的进程的输出的标准方法是using gdb.为了以非交互方式进行,您必须使用the -batch switch和要重定向的pid的手动规范.结果是
bash -c 'sleep 10; echo ASDF' &
#sudo gdb -p "$!" -batch -ex 'p dup2(open("/dev/null",0),1)' -ex 'p dup2(open("/dev/null",0),2)' -ex 'detach'
gdb -p "$!" -batch -ex 'p dup2(open("/dev/null",0),1)' -ex 'p dup2(open("/dev/null",0),2)' -ex 'detach'
watch -n1 'ls -la |head -25'
哪里$!是最后生成的进程的pid,这正是我们在示例中所需要的.在您的实际用例中,您必须使用给定shell的loop over every pid running in the background,并将每个pid替换为$!以上.
另请注意,对于您自己的进程,gdb调用应该没有sudo,但由于某些原因(源于某些配置),它只允许我使用sudo执行它.你的旅费可能会改变.
内容总结
以上是互联网集市为您收集整理的linux – “监视”命令中的清除屏幕全部内容,希望文章能够帮你解决linux – “监视”命令中的清除屏幕所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。