Bash でプログレスバーを作成する

Bash Depuroguresubawo Zuo Chengsuru



スクリプトの実行中に一定時間待機する必要がある場合は、進行状況バーを作成してユーザーにしばらく待つように通知することをお勧めします。プログレス バーは、単純な Bash スクリプト、または「cv」、「dialog」などの組み込み Linux コマンドを使用して作成できます。このチュートリアルでは、Bash スクリプトを使用してプログレス バーを作成する方法を示します。

Bash でプログレスバーを作成するさまざまな例

Bash で進行状況バーを実装するさまざまな方法が、チュートリアルのこの部分で示されています。

例 1: コマンドを使用しない単純なプログレスバーを実装する

「#」文字と「sleep」コマンドを使用して進行状況バーを表示する次のスクリプトを含む Bash ファイルを作成します。ここでは「printf」コマンドを使用してプログレスバーを表示します。進行状況バーは 4 つの部分に分かれています。 25% は 1 秒後に表示されます。 3 秒後に 50% が表示されます。 2 秒後に 75% が表示されます。 100% は 1 秒後に表示されます。







#!/bin/bash

プリントフ \n タスクが完了するまでお待ちください... \n \n

#1秒待ってください

寝る 1

#進行状況バーの最初の部分を印刷します

プリントフ 「[##### ] 25%% 完了しました。 \r

#3秒待ってください

寝る 3

#進行状況バーの 2 番目の部分を印刷します

プリントフ 「[########## ] 50%% 完了しました。 \r

#2秒待ちます

寝る 2

#進行状況バーの 3 番目の部分を印刷します

プリントフ 「[############### ] 75%% 完了しました。 \r

#1秒待ってください

寝る 1

#進行状況バーの最後の部分を印刷します

プリントフ 「[####################] 100%% 完了しました。 \r

プリントフ \n \n タスクが完了しました。 \n \n



スクリプトを実行してから 1 秒後に次の出力が表示されます。







スクリプトを実行してから 7 秒後に次の出力が表示されます。



例 2: 「Pv」コマンドを使用してプログレスバーを実装する

「pv」コマンドの完全な形式は「pipe viewer」です。パイプを通過するデータの進行状況を監視し、データのサイズに基づいて進行状況バーを表示するために使用されます。このコマンドは、デフォルトではシステムにインストールされません。この例のスクリプトを実行する前に、次のコマンドを実行して「pv」コマンドをインストールします。

$ 須藤 適切な インストール PV

ある場所から別の場所にコピーされる大きなサイズのファイルを選択する必要があります。 「test.txt」ファイルを現在の場所から「/home/fahmida/temp/」の場所にコピーする次のスクリプトを使用して Bash ファイルを作成します。ここでは「pv」コマンドを使用してプログレスバーを表示します。プログレスバーは「test.txt」ファイルのサイズに基づいて表示されます。

#!/bin/bash

エコー 「ファイルをある場所から別の場所にコピーしています。」

#2秒待ちます

寝る 2

#ファイルをコピー先にコピーします

テスト.txt | PV -s $ ( ステータス -c % test.txt ) > / / 理解 / 温度 / テスト.txt

エコー 「ファイルがコピーされました。」

スクリプトの実行が完了すると、次の出力が表示されます。

例 3: 「ダイアログ」コマンドを使用してプログレスバーを実装する

Bash で進行状況バーを実装するもう 1 つの方法は、「dialog」コマンドを使用することです。このコマンドを使用すると、ターミナルに見栄えの良い進行状況バーを表示できます。この進行状況バーを使用して、さまざまな種類のウィジェットを表示できます。このコマンドによって表示されるプログレスバーのタスクは、Bash スクリプトによって制御できます。この進行状況バーは、デフォルトではシステムにインストールされません。次のコマンドを実行して、この進行状況バーをシステムにインストールします。

$ 須藤 適切な インストール ダイアログ

「dialog」コマンドを使用して進行状況バーを表示する次のスクリプトを含む Bash ファイルを作成します。 「/etc/passwd」ファイルを「/home/fahmida/tempdir」の場所にコピーするタスクは、進行状況バーを使用して表示されます。進行状況バーは 5 つの部分に分かれています。各パートは 2 秒後に表示されます。 -title オプションは、進行状況バーのタイトルを表示するために「dialog」コマンドで使用されます。 –gauge オプションは、高さ 10 行、幅 100 文字の進行状況バーを表示するために「dialog」コマンドで使用されます。 「タスクの完了を待機しています」というメッセージが進行状況バーの上に表示されます。

#!/bin/bash

#カウンターを初期化する

現在の位置 = 0

(

#無限ループを定義する

ために ( ( ;; ) )

する

<
デリミタ

$current_pos

#現在のカウンター値を表示

cp /etc/passwd から /home/fahmida/tempdir ($current_pos%):

デリミタ

終了後


#カウンターを20増やす

( ( 現在の位置+= 二十 ) )

#カウンタ値が100を超えたらループを終了する

[ $current_pos -gt 100 && 壊す

#各増分後に 2 秒待機します

寝る 2

終わり

) | ダイアログ - タイトル 「ファイルをコピーしています...」 - ゲージ 「タスクの完了を待っています」 10 100 0


スクリプトを実行してから 6 秒後に次の出力が表示されます。


スクリプトを実行してから 10 秒後に、次の出力が表示されます。


結論

このチュートリアルでは、Bash ユーザーがプログラムでプログレス バーを使用できるように、Bash スクリプトを使用してプログレス バーを開発するさまざまな方法を示します。