Unix / Linux-シェルループタイプ
この章では、Unixのシェルループについて説明します。ループは、一連のコマンドを繰り返し実行できる強力なプログラミングツールです。この章では、シェルプログラマーが利用できる次のタイプのループについて説明します。
- whileループ
- forループ
- までループ
- 選択ループ
状況に応じて異なるループを使用します。たとえば、whileループは、指定された条件が真のままになるまで、指定されたコマンドを実行します。インクルードuntil ループは、指定された条件が真になるまで実行されます。
優れたプログラミングの練習ができたら、専門知識を習得し、状況に応じて適切なループの使用を開始します。ここに、while そして for ループは、次のような他のプログラミング言語のほとんどで利用できます。 C、 C++ そして PERL、など。
ネスティングループ
すべてのループはネストの概念をサポートしています。つまり、あるループを別の同様のループまたは異なるループの中に置くことができます。このネストは、要件に基づいて無制限に実行できます。
これがネストの例です whileループ。他のループは、同様の方法でプログラミング要件に基づいてネストできます。
whileループのネスト
whileループを別のwhileループの本体の一部として使用することができます。
構文
while command1 ; # this is loop1, the outer loop
do
Statement(s) to be executed if command1 is true
while command2 ; # this is loop2, the inner loop
do
Statement(s) to be executed if command2 is true
done
Statement(s) to be executed if command1 is true
done
例
ループの入れ子の簡単な例を次に示します。9までカウントしていたループ内に別のカウントダウンループを追加しましょう-
#!/bin/sh
a=0
while [ "$a" -lt 10 ] # this is loop1
do
b="$a"
while [ "$b" -ge 0 ] # this is loop2
do
echo -n "$b "
b=`expr $b - 1`
done
echo
a=`expr $a + 1`
done
これにより、次の結果が得られます。どのように注意することが重要ですecho -nここで動作します。ここに-n オプションを使用すると、echoは改行文字の出力を回避できます。
0
1 0
2 1 0
3 2 1 0
4 3 2 1 0
5 4 3 2 1 0
6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
8 7 6 5 4 3 2 1 0
9 8 7 6 5 4 3 2 1 0