Unix-shell-loops

提供:Dev Guides
移動先:案内検索

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

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

  • リンク:/unix/while-loop [whileループ]
  • リンク:/unix/for-loop [forループ]
  • リンク:/unix/until-loop [untilループ]
  • リンク:/unix/select-loop [選択ループ]

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

適切なプログラミングの練習ができたら、専門知識を習得し、状況に応じて適切なループを使用し始めます。 ここで、 while および for ループは、 CC ++PERL など、他のほとんどのプログラミング言語で使用できます。

入れ子ループ

すべてのループは入れ子の概念をサポートしているため、1つのループを別の類似のループまたは別のループ内に配置できます。 このネストは、要件に基づいて無制限の回数まで実行できます。

以下は 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 オプションを使用すると、エコーは改行文字を出力しません。

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