我有一段代码用于进度条只是为了看起来。如何在bash中显示两个进度条并以不同的速度加载到屏幕上?这是我对第一个进度条的代码:
#!/bin/bash
echo -ne '[### (15%)\r'
sleep 1
echo -ne '[######## (42%)\r'
sleep 1
echo -ne '[############# (66%)\r'
sleep 1
echo -ne '[####################] (100%)\r'
sleep 1
echo '\n'
答案 0 :(得分:0)
快速解决方案;可能会更好地计算标准:
#!/bin/bash
pgbar(){
progress1=$1
progress2=$2
if [ $progress1 -lt 25 ] ; then
bar1='[### (15%)'
elif [ $progress1 -lt 50 ] ; then
bar1='[###### (42%)'
elif [ $progress1 -lt 99 ] ; then
bar1='[######### 66%)'
else
bar1='[#############](100%)'
fi
if [ $progress2 -lt 25 ] ; then
bar2='[### (15%)'
elif [ $progress2 -lt 50 ] ; then
bar2='[###### (42%)'
elif [ $progress2 -lt 99 ] ; then
bar2='[######### 66%)'
else
bar2='[#############](100%)'
fi
echo -ne "$bar1" "$bar2" "\r"
}
pgbar 15 15
sleep 1
pgbar 15 50
sleep 1
pgbar 15 75
sleep 1
pgbar 55 75
sleep 1
pgbar 85 75
sleep 1
pgbar 100 75
sleep 1
pgbar 100 100
sleep 1
echo ''
将echo -ne "$bar1" "$bar2" "\r"
替换为
echo "$bar1"
echo "$bar2"
tput cuu1
tput cuu1
如果你想要彼此之下的条形。
答案 1 :(得分:0)
我不确定这是否是您想要的,但请尝试以下方法:
#!/bin/bash
echo -ne '[### (15%)\n'
sleep 1
echo -ne '[******** (42%)\r'
tput cuu 1
sleep 1
echo -ne '[############# (66%)\n'
sleep 1
echo -ne '[****************** (90%)\r'
tput cuu 1
sleep 1
echo -ne '[####################] (100%)\n'
sleep 1
echo -ne '[********************] (100%)\r'
echo -e '\n'
要进行更精细的控制,请尝试使用ncurses库。