ループはプログラミング言語の基本的な概念の1つです。ループは、特定の条件が満たされるまで一連のコマンドを何度も実行する場合に便利です。
Bashなどのスクリプト言語では、ループは反復的なタスクを自動化するのに役立ちます。 Bashスクリプトには、 for
という3つの基本的なループ構造があります。 ループ、 while
ループし、 until
ループ。
このチュートリアルでは、 while
の基本について説明します。 Bashでループします。 break
の使用方法も紹介します および続行
ループの流れを変更するステートメント。
while
ループ#
while
ループは、指定された条件がtrueと評価される限り、指定されたコマンドのセットを不明な回数実行するために使用されます。
バッシュwhile
ループは次の形式を取ります:
while [CONDITION]
do
[COMMANDS]
done
while
ステートメントはwhile
で始まります キーワードの後に条件式が続きます。
コマンドを実行する前に、条件が評価されます。条件がtrueと評価されると、コマンドが実行されます。それ以外の場合、条件がfalseと評価された場合、ループは終了し、プログラム制御は次のコマンドに渡されます。
以下の例では、各反復で、変数 i
の現在の値 印刷され、1つインクリメントされます。
i=0
while [ $i -le 2 ]
do
echo Number: $i
((i++))
done
火ループはi
である限り繰り返されます 2以下です。次の出力が生成されます:
Number: 0
Number: 1
Number: 2
while
ループ# 無限ループは、無限に繰り返され、決して終了しないループです。条件が常にtrueと評価される場合、無限ループが発生します。
次の例では、組み込みコマンド:
を使用しています。 無限ループを作成します。 :コード> 常にtrueを返します。
true
を使用することもできます 組み込みまたは常にtrueを返すその他のステートメント。
while :
do
echo "Press <CTRL+C> to exit."
sleep 1
done
while
上記のループは無期限に実行されます。 CTRL + C
を押すと、ループを終了できます。 。
これは1行に相当するものです:
while :; do echo 'Press <CTRL+C> to exit.'; sleep 1; done
while
の最も一般的な使用法の1つ ループは、ファイル、データストリーム、または変数を1行ずつ読み取ることです。
/ etc / passwd
を読み取る例を次に示します。 1行ずつファイルし、各行を印刷します:
file=/etc/passwd
while read -r line; do
echo $line
done < "$file"
while
を制御する代わりに 条件付きのループ、入力リダイレクトを使用しています( <"$ file"
)ファイルを read
に渡す ループを制御するコマンド。 while
最後の行が読み取られるまでループが実行されます。
ファイルを1行ずつ読み取る場合は、常に read
を使用してください -r
を使用 バックスラッシュがエスケープ文字として機能しないようにするオプション。
デフォルトでは、 read
コマンドは、先頭/末尾の空白文字(スペースとタブ)をトリミングします。 IFS =
を使用します read
の前のオプション この動作を防ぐには:
file=/etc/passwd
while IFS= read -r line; do
echo $line
done < "$file"
break
および続行
ステートメント#
break
および続行
ステートメントを使用して、whileループの実行を制御できます。
break
ステートメント#
break
ステートメントは現在のループを終了し、終了したループに続くコマンドにプログラム制御を渡します。通常、特定の条件が満たされたときにループを終了するために使用されます。
次の例では、現在の反復アイテムが 2
に等しくなると、ループの実行が中断されます。 。
i=0
while [ $i -lt 5 ]
do
echo "Number: $i"
((i++))
if [[ "$i" == '2' ]]; then
break
fi
done
echo 'All Done!'
Number: 0
Number: 1
All Done!
続行
ステートメント#
続行
ステートメントはループの現在の反復を終了し、プログラム制御をループの次の反復に渡します。
以下では、現在の反復アイテムが 2
に等しくなると 続行
ステートメントにより、実行はループの最初に戻り、次の反復を続行します。
i=0
while [ $i -lt 5 ]
do
((i++))
if [[ "$i" == '2' ]]; then
continue
fi
echo "Number: $i"
done
echo 'All Done!'
Number: 1
Number: 3
Number: 4
Number: 5
All Done!
結論#
while
ループは、条件が真である限り、指定されたコマンドのセットを繰り返し実行します。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。