cURL - The only HTTP client you'll ever need | Practical Bash & Terminal #9
目次:
ループは、プログラミング言語の基本概念の1つです。 ループは、特定の条件が満たされるまで一連のコマンドを何度も実行する場合に便利です。
Bashなどのスクリプト言語では、繰り返しタスクの自動化にループが役立ちます。 Bashスクリプトには、forループ、whileループ、untilループの3つの基本的なループ構造があります。
このチュートリアルでは、Bashのwhileループの基本と、ループのフローを変更するbreakおよびcontinueステートメントについて説明します。
Bash whileループ
whileループは、特定の条件がtrueと評価される限り、特定のコマンドセットを未知の回数実行するために使用されます。
Bash whileループの形式は次のとおりです。
while do done
条件は、コマンドを実行する前に評価されます。 条件がtrueと評価されると、コマンドが実行されます。 それ以外の場合、条件がfalseと評価されると、ループが終了し、プログラム制御が後続のコマンドに渡されます。
次の例では、各反復でループは変数
i
現在の値を出力し、変数を1ずつ増やします。
i=0 while do echo Number: $i ((i++)) done
i
が2以下である限り、Tueループが繰り返されます。 次の出力が生成されます。
無限のwhileループ
無限ループは、無限に繰り返され、終了しないループです。 条件が常にtrueと評価される場合、無限ループになります。
次の例では、組み込みコマンドを使用しています
:
これは、無限ループを作成するために常にtrueを返します。
true
組み込みコマンド、または常にtrueを返す他のステートメントを使用することもできます。
上記のwhileループは無期限に実行されます。
同等の単一行を次に示します。 whileループの最も一般的な使用法の1つは、ファイル、データストリーム、または変数を1行ずつ読み取ることです。 次の例では、whileループが
whileループを条件で制御する代わりに、入力リダイレクト(
ファイルを1行
デフォルトでは、
breakおよびcontinueステートメントを使用して、whileループの実行を制御できます。 breakステートメントは、現在のループを終了し、終了したループに続くコマンドにプログラム制御を渡します。 通常、特定の条件が満たされたときにループを終了するために使用されます。 次の例では、現在の反復項目が
continueステートメントは、ループの現在の反復を終了し、プログラム制御をループの次の反復に渡します。 以下では、現在の反復項目が
ここまでで、bash whileループの使用方法を十分に理解できたはずです。
while: do echo "Press to exit." sleep 1 done
while: do echo "Press to exit." sleep 1 done
CTRL+C
押すと、ループを終了できます。
while:; do echo 'Press to exit.'; sleep 1; done
while:; do echo 'Press to exit.'; sleep 1; done
行ごとにファイルを読む
/etc/passwd
ファイルを1行ずつ読み取り、各行を出力します。
file=/etc/passwd while read -r line; do echo $line done < "$file"
< "$file"
)を使用して、ループを制御するコマンドである
read
ファイルを渡します。 whileループは、最後の行が読み取られるまで実行されます。
-r
read
は、常に
-r
オプションを指定して
read
を使用し、バックスラッシュがエスケープ文字として機能しないようにします。
read
コマンドは先頭/末尾の空白文字(スペースとタブ)を削除します。 この動作を防ぐには、
read
コマンドの前に
IFS=
オプションを使用します
file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"
ステートメントを中断して続行
ブレイクステートメント
2
等しくなると、ループの実行が中断されます。
i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'
声明を続ける
2
等しくなると、continueステートメントによって実行がループの先頭に戻り、次の反復が続行されます。
i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'
Number: 1 Number: 3 Number: 4 Number: 5 All Done!
結論
Bash forループ
Bashスクリプトには、forループ、whileループ、untilループの3つの基本的なループ構造があります。 このチュートリアルでは、Bashのforループの基本と、ループのフローを変更するbreakおよびcontinueステートメントについて説明します。
Bash:ファイルに追加
Linuxには、ファイルにテキストを追加する方法が複数あります。 この記事ではそれらのいくつかについて説明します。
bash(カウンター)で変数をインクリメントおよびデクリメントする方法
Bashスクリプトを記述するときの最も一般的な算術演算の1つは、変数の増分と減分です。 これは、ループでカウンターとして最もよく使用されますが、スクリプト内の他の場所でも発生する可能性があります。