Linux shellのwhile文のサンプル

Linuxのshellのwhile文のサンプルです。条件で処理の繰り返しを制御します。

目次

サンプル while文とは / while文のサンプル
  ループを抜ける(break)
  ループの先頭に戻る(continue)
while文で配列を使用する
数値の比較演算子

while文とは

while [条件式]
do
       処理
done
  • 条件式がtrueの間、処理を繰り返します。
  • 条件式がfalseの場合、処理を終了します。
  • 最初の条件の判定でfalseの場合、処理を1回も実行しません。
  • 処理に条件式をfalseにするロジックがないと無限ループになるので注意が必要です。

 

while文のサンプル

#!/bin/bash
i=0

while [ $i -lt 5 ]
do
  echo $i # 0 1 2 3 4
  ((i++))
done

4行目は値が5より小さい間、処理を繰り返します。
7行目は、条件になる値を加算しています。

 

ループを抜ける(break)

#!/bin/bash
i=0

while :
do
	if [ $i -eq 3 ]; then
		break
	fi
	echo $i # 0 1 2
	((i++))
done

4行目は、条件式がなくコロンです。このままの場合は無限ループになります。
7行目のbreakでwhile文を抜けます。
breakがないと無限ループになるので注意が必要です。

 

ループの先頭に戻る(continue)

#!/bin/bash
i=0

while [ $i -lt 5 ]
do
	if [ $i -eq 3 ]; then
		((i++))
		continue
	fi
	echo $i # 0 1 2 4
	((i++))
done

8行目のcontinueは、次は4行目を実行します。そのため10行目は実行されません。
このサンプルでは7行目の加算がないと無限ループになるので注意して下さい。

 

while文で配列を使用する

#!/bin/bash
color=(red yellow blue)
i=0

while [ $i -lt ${#color[@]} ]
do
	echo "$n ${color[$i]}" # red yellow blue
	((i++))
done

2行目は、配列です。
5行目の-ltの右側は、配列の要素数を取得しています。

 

数値の比較演算子

数値比較演算子は、2つの値を比べて条件を満たしていればtrue,そうでない場合はfalseを返します。

比較演算子 説明
a -eq b aとbの値は等しい
a -ne b aとbの値は等しくない
a -gt b aはbより大きい
a -ge b aはbより大きい または 等しい
a -lt b aはbより小さい
a -le b aはbより小さい または 等しい

関連の記事

Linux shellのIf文 条件分岐を行うサンプル

△上に戻る