shell 实现进度条

#!/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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值