Unix / Linux - Kabuk Döngü Türleri

Bu bölümde, Unix'teki kabuk döngülerini tartışacağız. Döngü, bir dizi komutu tekrar tekrar yürütmenizi sağlayan güçlü bir programlama aracıdır. Bu bölümde, kabuk programcılarının kullanabileceği aşağıdaki döngü türlerini inceleyeceğiz -

  • While döngüsü
  • For döngüsü
  • Kadar döngü
  • Seçme döngüsü

Duruma göre farklı döngüler kullanacaksınız. Örneğin,whiledöngü, verilen koşul doğru kalana kadar verilen komutları yürütür; until döngü, belirli bir koşul gerçekleşene kadar yürütülür.

İyi bir programlama pratiğine sahip olduktan sonra, uzmanlık kazanacak ve böylece duruma göre uygun döngüyü kullanmaya başlayacaksınız. Buraya,while ve for döngüler, diğer programlama dillerinin çoğunda mevcuttur. C, C++ ve PERL, vb.

Yuvalama Döngüleri

Tüm döngüler, yuvalama konseptini destekler; bu, bir döngüyü başka bir benzer veya farklı döngülerin içine koyabileceğiniz anlamına gelir. Bu yuvalama, ihtiyacınıza bağlı olarak sınırsız sayıda olabilir.

İşte bir yuvalama örneği whiledöngü. Diğer döngüler, programlama gereksinimine bağlı olarak benzer şekilde iç içe yerleştirilebilir -

Döngüler sırasında yuvalama

Bir while döngüsünü başka bir while döngüsünün gövdesinin bir parçası olarak kullanmak mümkündür.

Sözdizimi

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

Misal

İşte döngü iç içe yerleştirmenin basit bir örneği. Dokuza kadar saydığınız döngünün içine başka bir geri sayım döngüsü ekleyelim -

#!/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

Bu, aşağıdaki sonucu verecektir. Nasıl olduğuna dikkat etmek önemlidirecho -nburada çalışıyor. Buraya-n seçeneği, yankının yeni bir satır karakteri yazdırmasını önlemesini sağlar.

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