Unix / Linux-シェルループタイプ

この章では、Unixのシェルループについて説明します。ループは、一連のコマンドを繰り返し実行できる強力なプログラミングツールです。この章では、シェルプログラマーが利用できる次のタイプのループについて説明します。

  • whileループ
  • forループ
  • までループ
  • 選択ループ

状況に応じて異なるループを使用します。たとえば、whileループは、指定された条件が真のままになるまで、指定されたコマンドを実行します。インクルードuntil ループは、指定された条件が真になるまで実行されます。

優れたプログラミングの練習ができたら、専門知識を習得し、状況に応じて適切なループの使用を開始します。ここに、while そして for ループは、次のような他のプログラミング言語のほとんどで利用できます。 CC++ そして 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