Linux#!/bin/bash终端下的模拟进度条

进程条源码:

#!/bin/bash
#Function: Display a progress bar.
#Author: Mach
#Email: mach_aly@aliyun.com
#Created time: 08.12/2017

ProLen=`echo "$1" | wc -m`
PBLen=$(( 80 - "$ProLen" - 13 ))

ProgressBar(){
  DisSym=''
  for (( i=0; i<="$PBLen"; i=++i ))
  do
    printf "%s [%-"$PBLen"s]\r" "$1" "$DisSym"
    DisSym="=$DisSym"
    sleep 0.05
  done
}

DisResult(){
  DisSym=''
  for (( i=0; i<"$PBLen"; i=++i ))
  do
    DisSym="=$DisSym"
  done
  printf "%s [%-"$PBLen"s] "$2"\r" "$1" "$DisSym"
}

ResultJudge(){
  if [ "$1" = 0 ]; then
    Result="\033[1m\033[32m[Succ]\033[0m\n"
  else
    Result="\033[1m\033[31m[Fail]\033[0m\n"
  fi
}

LoopPB(){
  while "true"
  do
    ProgressBar "$1"
  done
}

case "$#" in
  1)
    LoopPB "$1" &
    ;;
  2)
    ResultJudge "$2"
    kill "$!"
    DisResult "$1" "$Result"
    ;;
  *)
    echo "Parameter error"
    ;;
esac

调用方式:

#!/bin/bash

set +m
(
. ./ProgressBar.sh "Prompt information"
sleep 2
. ./ProgressBar.sh "Prompt information" "$?"
)

 

转载于:https://my.oschina.net/u/3651043/blog/1510630

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值