打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
progressbar.sh
#! /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
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python progressbar2 使用
VB.NET ProgressBar控件基本概念讲述
C# 多线程实现ProgressBar效果
如何:设置 Windows 窗体 ProgressBar 控件显示的值
V9.A10ProgressBar控件(进度条)
【Leetcode】396. Rotate Function
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服