#!/bin/bash
a=({1..100})
b=''
for i in ${a[@]}
do
if [ $(($i % 2)) -eq 0 ]
then
printf "progress:[%-50s]%d%%\r" $b $i #左对齐50个字符
sleep 0.1
#echo -ne '\r'$i
b=#$b
fi
done
printf "\n"
- 其中 printf中的 - 号表示左对齐,否则因默认右对齐进度条会从右边开始
- \r是回撤,在printf中表示回到行首,如在echo中实现不换,则使用
echo -ne 'xxxx\r' #-n 表示不换行 -e表示激活转义字符,否则就会输出\r