【Shell笔记>转载|实用】原地更新终端输出信息

我们在使用Linux系统时会常常看到一些命令、程序脚本能够实时地刷新输出地信息,而不是每次通过新的一行输出信息,这样我们就能够一方面动态地显示程序运行的进度,另一方面尽量地精简屏幕上的输出信息,从而使得我们对结果有更好的把握。

我在实现一些分析流程后发现自己在循环中使用echo命令输出地信息太多,一些我需要注意的信息早就不知道被刷新到哪里去了。所以我想做一些优化,对于循环的信息显示尽量在同一行刷新。

下面是Shell实现的例子,通过回车键\r不断地覆盖当前的输出,具体我们根据需求更改:

#!/bin/bash

for i in {1..100}
do
    printf "\rprocess %3d %%" $i
    sleep 1
done

# print a new line
echo

原文地址:https://blog.csdn.net/yueyuanchang/article/details/43077997 (原文还提供了一个C代码实现,有兴趣的可以看一看。)

    原文作者:linux
    原文地址: https://www.jianshu.com/p/e34c84656c0b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞