我想在bash操作期间以特定格式显示类似于以下内容的进度条:
[###########](40%)
更新后,它应该成为
[###############](50%)
然后类似地达到 100%
100%
有什么办法可以做到这一点
我编写了以下bash程序,但我不知道如何在同一行中显示百分比:
#!/bin/bash { echo -n "[" for ((i = 0 ; i <= 100 ; i+=6)); do sleep 0.05 echo -n "###" done echo -n "]" echo }
假设某个循环中正在执行一定数量的操作,并且在完成每个操作之后,我想报告一些进度。我不想安装pv或默认Ubuntu 12.04安装不附带的任何其他实用程序。
pv
Ubuntu 12.04
我们echo -n '...' $'\r'来打印回车符:
echo -n '...' $'\r'
for ((k = 0; k <= 10 ; k++)) do echo -n "[ " for ((i = 0 ; i <= k; i++)); do echo -n "###"; done for ((j = i ; j <= 10 ; j++)); do echo -n " "; done v=$((k * 10)) echo -n " ] " echo -n "$v %" $'\r' sleep 0.05 done echo
它使光标移动到行的开头以继续打印。
输出如下,始终在同一行:
[ ################## ] 50 % .../... [ ################################# ] 100 %