LINUX命令行脚本编程的一个小技巧

[复制链接]
查看: 3667   回复: 3
发表于 2023-4-12 07:11:09 | 显示全部楼层 |阅读模式
如果是长时间运行跑循环,
那么,在每个循环的刚开始的时候,输出 \x1b[2K\r
然后,再输出其他的信息,
这个循环里可能会有两种情况,一是有重点信息需要输出,一种是不需要输出重要信息。
那么,只需要在,需要输出重要信息的时候,输出\n,这行信息会被保留,否则的话,会在下一次循环,被\x1b[2K\r覆盖掉。

不知道说的够明白了没有。


一个简单的演示:
https://pastebin.com/XtmSwMkv

已经用了好些年了,正好解决了前面这个MJJ的需求
https://hostloc.com/thread-1157799-1-1.html
也就是:
既知道程序的运行状态(也就是每次循环都输出了信息)
也不要让过多的无用信息把屏幕给占了(如果当前循环的信息无用,就在下次循环给覆盖掉)
回复

使用道具 举报

发表于 2023-4-12 07:11:38 | 显示全部楼层
笑死我,你是不是不懂用tee啊是不是不懂用screen啊是不是不懂用重定向啊
回复 支持 反对

使用道具 举报

发表于 2023-4-12 07:12:36 | 显示全部楼层
就是每次清屏再从头输出?
回复 支持 反对

使用道具 举报

发表于 2023-4-12 07:12:55 | 显示全部楼层
\x1b[2K 的意思是清除所在行的所有内容
\r 是把光标移动回当前行的开头
这两个连起来用就是“清屏再从头输出”,只清除当前行
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则