[シェル戦闘]シェルを使用して進行状況バーを実装する

序文

小さなパートナーが、プログレスバーなどの派手なものがあるかどうかを言う前にメッセージを残しました。彼は今日来ました。

アイデア

1.プログレスバーの構成

プログレスバーは5文字で構成されています。

メインプログレスバー:
#Flowerホイッスルサークル:| \-/

##は進行状況を生成するために使用されます:

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

| \-/これらの4つは、パーセンテージの後ろを丸で囲むために使用されます

2.進行状況バーの進行状況

合計は100%で、毎回4%の割合で増加します。つまり、0%、4%、8%、12%、最大100%です。
i = 0と定義します。$ i * 4は、
i ++
が4%増加するたびに、4 iが増加するたびに1ずつ増加することを意味し、ポンド記号を出力します。
ここに画像の説明を挿入
この写真では、0%、4%、8%、12%、合計4つの#記号が印刷されています。

3.ファンシーサークル

同様に、| \-/を配列ch =( '|' '' '-' '/')として定義し、値はch [0]、ch [1]、ch [2]です。ch[3]

ch [5]がインデックス値を超えないようにするため。インデックス値を毎回4の商にするので、5のインデックスが表示されないようにすることができます。
インデックスを取得する:ch [$ index]
4を引用する方法:インデックス= i%4とします

4.何を印刷するか

printf "[%-25s][%d%%][%c]\r" $str $(($i*4)) ${ch[$index]}

ここに画像の説明を挿入
ch [$ index]は、円のように見える4つのシンボルを一度に1つの値で出力します。

コードソース

#!/bin/bash
i=0
str='#'
ch=('|' '\' '-' '/')
index=0
while [ $i -le 25 ]
do
    printf "[%-25s][%d%%][%c]\r" $str $(($i*4)) ${ch[$index]}
    str+='#'
    let i++
    let index=i%4
    sleep 0.1
done
printf "\n"
echo "安装完成"

総括する

シェルを使用してプログレスバーの単純なバージョンを実装すると、実際には多くの優れたソリューションがありますが、完璧を追求する人にとって、各ソリューションには対応する欠点があります。

おすすめ

転載: blog.csdn.net/xinshuzhan/article/details/108734126