shell脚本实现
#!/bin/bash
#********************************************************************
#Author: wei
#QQ: 1655841639
#Date: 2020-08-25
#FileName: progress_chart.sh
#URL:
#Description: The test script
#Copyright (C): 2020 All rights reserved
#********************************************************************
function print_chars()
{
#传入的第一个参数指定要打印的字符串
local char="$1"
#传入的第二个参数指定要打印多少次指定的字符串
local number="$2"
local c
for (( c=0;c < number;++c ));do
printf "$char"
done
}
COLOR=32
declare -i end=50
for (( i=1; i <= end ;++i));do
printf "\e[1;${COLOR}m\e[80D["
print_chars "#" $i
print_chars " " $((end - i))
printf "] %3d%%\e[0m" $((i * 2))
sleep 0.1s
done
echo

Python脚本实现
方式一 静态实现
res=''
for i in range(50):
res+='#'
print('[%-50s]' % res)
>>> res=''
>>> for i in range(50):
... res+='#'
... print('[%-50s]' % res)
...
[# ]
[## ]
[### ]
[#### ]
[##### ]
[###### ]
[####### ]
[######## ]
[######### ]
[########## ]
[########### ]
[############ ]
[############# ]
[############## ]
[############### ]
[################ ]
[################# ]
[################## ]
[################### ]
[#################### ]
[##################### ]
[###################### ]
[####################### ]
[######################## ]
[######################### ]
[########################## ]
[########################### ]
[############################ ]
[############################# ]
[############################## ]
[############################### ]
[################################ ]
[################################# ]
[################################## ]
[################################### ]
[#################################### ]
[##################################### ]
[###################################### ]
[####################################### ]
[######################################## ]
[######################################### ]
[########################################## ]
[########################################### ]
[############################################ ]
[############################################# ]
[############################################## ]
[############################################### ]
[################################################ ]
[################################################# ]
[##################################################]
>>>
方式二 动态显示,并添加百分比
# cat progress.py
#!/bin/python3
# -*- coding: utf-8 -*-
import time
def progress(percent):
if percent > 1:
percent = 1
res=int(50 * percent) * '#'
print('\r[%-50s] %d%%' % (res,int(100*percent)),end='')
recv_size=0
total_size=6666
while recv_size < total_size:
time.sleep(0.3)
recv_size+=1024
percent=recv_size / total_size
progress(percent)
# python3 progress.py
[##################################################] 100%