我们在使用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代码实现,有兴趣的可以看一看。)