首页 > 系统服务 > 详细

linux 下shell实现一个进度条

时间:2021-04-06 15:06:48      阅读:19      评论:0      收藏:0      [点我收藏+]

少废话,直接上代码

#!/bin/bash

# 这个echo是主要是为了换行
echo " "

# 获取当前控制台的屏幕宽度,需要扣去一点点位置,便于显示百分比,这里我选择12字符就可以了
width=`stty size| awk ‘{print $2‘}`
width=$(($width-12))

# 根据width得到能占满整行的进度条
line=$(seq $width| awk ‘{print "#"}‘ | tr ‘\n‘ ‘,‘| sed ‘s/,//g‘)
#echo $line

# 进度条显示
# $1 已完成数
# $2 总任务数
progress()
{   
    # 计算百分比
    percent=`echo $1*100/$2 | bc`
    # 计算进度条位置
    len=`echo $1*$width/$2|bc`
    # 注意最后的\r,回车清除上一次的控制台输出
    printf "[%-${width}s][%d%%]\r" "${line:0:$len}" "$percent"
    sleep 1
}


progress 0 4
progress 1 4
progress 2 4
progress 3 4
progress 4 4

# 小换行
printf "\n"

效果图,有时间我贴动图吧,暂时静态图忍忍
技术分享图片

linux 下shell实现一个进度条

原文:https://www.cnblogs.com/westlin/p/14620922.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!