大佬教程收集整理的这篇文章主要介绍了linux – “监视”命令中的清除屏幕,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
sleep 10 && for i in {1..100}; do echo $i; done & watch -n 5 ps aux
当另一个程序输出例如示例中的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",2)' -ex 'detach' gdb -p "$!" -batch -ex 'p dup2(open("/dev/null",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 – “监视”命令中的清除屏幕所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。