#! /bin/sh
MAXIMUM_VALUE=100
LENGTH=80
DISPLAY_PATTERN="="
INDICATOR=">"
BLANK_PATTERN=" "
function progressbar
{
VALUE=$1
if (( VALUE > MAXIMUM_VALUE ))
then
return 1
fi
BAR_LENGTH=`expr ${LENGTH} - 9`
CURRENT_BAR_LENGTH=0
if (( VALUE == 0 ))
then
CURRENT_BAR_LENGTH=0
else
if (( VALUE == MAXIMUM_VALUE ))
then
CURRENT_BAR_LENGTH=${BAR_LENGTH}
else
CURRENT_BAR_LENGTH=`echo "scale=0; ${VALUE} * ${BAR_LENGTH} / ${MAXIMUM_VALUE}" | bc`
fi
fi
PASTY=""
for (( PG = 1; PG <= ${BAR_LENGTH}; PG++ ))
do
if (( PG == CURRENT_BAR_LENGTH && VALUE != MAXIMUM_VALUE ))
then
PASTY="${PASTY}${INDICATOR}"
continue
fi
if (( PG <= CURRENT_BAR_LENGTH ))
then
PASTY="${PASTY}${DISPLAY_PATTERN}"
continue
fi
PASTY="${PASTY}${BLANK_PATTERN}"
done
if [[ `echo ${PASTY} | tr -d [:blank:]`x == ""x ]]
then
PASTY="|"
fi
printf "\r[%-${BAR_LENGTH}s] %.1f%% " ${PASTY} $(echo "scale=3; ${VALUE} / ${MAXIMUM_VALUE} * 100" | bc)
}
#################################### USAGE #####################################
MAXIMUM_VALUE=1101
LENGTH=100
DISPLAY_PATTERN=")"
INDICATOR=">"
BLANK_PATTERN="-"
for (( CV = 1; CV <= ${MAXIMUM_VALUE}; CV++ ))
do
progressbar ${CV}
#sleep 0.03
done
echo
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。