シェルスクリプトは、UNIX系のオペレーティングシステムでシステム管理やタスクの自動化を行うための強力なツールです。
その中で、ループ処理を行うために使われるwhile文は非常に重要です。
この記事では、シェルスクリプトにおけるwhile文の基本的な使い方と実用的な例について解説します。
while文の基本構文は次の通りです。
while [ 条件式 ]
do
# 条件式が真の場合に実行されるコマンド
done
条件式には、testコマンドや[](角括弧)を用います。
条件式が真であれば、ループ内のコマンドが実行され続けます。条件式が偽になると、ループが終了します。
条件式については、さまざまな式があるためこの記事で網羅的に紹介はしませんが、いくつか例を取り上げて説明します。
#!/bin/bash
count=1
while [ $count -le 5 ]
do
echo "Count is $count"
((count++))
done
上記のサンプルスクリプトを実行すると、以下のような出力を得ます。1から5までの数字をカウントしていることがわかります。
countの値が 6 になるとループが終了します。
[
と]
は条件式を囲むための記号です。このスクリプトは、ユーザーに「yes」または「no」を入力するように促し、入力された値に基づいて処理を続行するか終了するかを決定します。
#!/bin/bash
while true
do
read -p "Enter 'yes' to continue or 'no' to quit: " userInput
if [ "$userInput" = "no" ]; then
echo "Exiting..."
break
elif [ "$userInput" = "yes" ]; then
echo "Continuing..."
else
echo "Invalid input. Please enter 'yes' or 'no'."
fi
done
userInputが「no」と等しい場合、以下の処理を実行します。
シェルスクリプトにおけるwhile文は、条件が真である間に繰り返し処理を行うための基本的なループ構造です。
簡単なカウントアップから、ユーザーの入力を待つインタラクティブなスクリプトまで、多くのシナリオで利用されます。
シェルスクリプトの基本を押さえて、より複雑なタスクの自動化に挑戦してみてください!