shell脚本显示多层进度条

欢迎留言交流

 

先看效果:

 
[####################################################################################################][100%]
[####################################################################################################][100%]
[####################################################################################################][100%]
 
安装完成

 

再看代码:

#!/bin/bash

function process_bar() {
        # 该函数有2参数, $1是控制在第几行输出  $2是进度百分比
        line=$1
        percent=$2
        
        str=""
        for ((k = 1; k <= $percent; k++)); 
        do 
          str+='#' 
        done
        
        #tput 控制光标位置,移动到第n行第0列
        tput cup $line 0
        
        #输出格式化的字符串
        printf "[%-100s][%d%%]\r" $str $percent 

}

function install() {

      tput init
      tput clear


      #设置画布大小  5行
      for ((line = 1; line <= 5; line++));
      do
         printf "\n"
      done

       
      #显示进度, 这里可以把 $i 替换成自定义的百分比
      for ((i = 1; i <= 100; i++));
      do
         sleep 0.01
         process_bar 1 "$i"
         process_bar 2 "$i"
         process_bar 3 "$i"
      done

      tput cup 5 0
      printf "安装完成\n"
}


#程序入口
install

 

posted @ 2022-08-24 10:27  为易  阅读(117)  评论(0)    收藏  举报