Unix / Linux - Kabuk Döngü Kontrolü
Bu bölümde, Unix'te kabuk döngü kontrolünü tartışacağız. Şimdiye kadar, farklı görevleri gerçekleştirmek için döngüler oluşturmaya ve döngülerle çalışmaya baktınız. Bazen bir döngüyü durdurmanız veya döngünün yinelemelerini atlamanız gerekir.
Bu bölümde, kabuk döngülerini kontrol etmek için kullanılan iki ifadeyi öğreneceğiz−
break Beyan
continue Beyan
Sonsuz Döngü
Tüm döngülerin sınırlı bir ömrü vardır ve döngüye bağlı olarak durum yanlış veya doğru olduğunda ortaya çıkarlar.
Gerekli koşul karşılanmazsa bir döngü sonsuza kadar devam edebilir. Sonsuz sayıda yürütmeyi sonlandırmadan sonsuza kadar çalışan bir döngü. Bu nedenle, bu tür döngüler sonsuz döngüler olarak adlandırılır.
Misal
İşte basit bir örnek while sıfırdan dokuza kadar olan sayıları görüntülemek için döngü -
#!/bin/sh
a=10
until [ $a -lt 10 ]
do
echo $a
a=`expr $a + 1`
done
Bu döngü sonsuza kadar devam ediyor çünkü a her zaman greater than veya equal to 10 ve asla 10'dan az değildir.
Break İfadesi
breakifadesi, break ifadesine kadar tüm kod satırlarının yürütülmesini tamamladıktan sonra tüm döngünün yürütülmesini sonlandırmak için kullanılır. Daha sonra, döngünün sonunu izleyen koda iner.
Sözdizimi
Aşağıdaki break deyimi bir döngüden çıkmak için kullanılır -
break
Break komutu, bu formatı kullanarak iç içe bir döngüden çıkmak için de kullanılabilir -
break n
Buraya n belirtir nth çıkışa çevreleyen döngü.
Misal
İşte döngünün en kısa sürede sona erdiğini gösteren basit bir örnek. a 5 olur -
#!/bin/sh
a=0
while [ $a -lt 10 ]
do
echo $a
if [ $a -eq 5 ]
then
break
fi
a=`expr $a + 1`
done
Yürütme üzerine, aşağıdaki sonucu alacaksınız -
0
1
2
3
4
5
İç içe geçmiş for döngüsünün basit bir örneğini burada bulabilirsiniz. Bu komut dosyası, her iki döngüden devar1 equals 2 ve var2 equals 0 -
#!/bin/sh
for var1 in 1 2 3
do
for var2 in 0 5
do
if [ $var1 -eq 2 -a $var2 -eq 0 ]
then
break 2
else
echo "$var1 $var2"
fi
done
done
Yürütme üzerine aşağıdaki sonucu alacaksınız. İç döngüde, argüman 2 ile bir kesme komutunuz vardır. Bu, bir koşul karşılanırsa, dış döngüden ve nihayetinde iç döngüden de çıkmanız gerektiğini gösterir.
1 0
1 5
Devam bildirimi
continue ifade benzer break komutu, yalnızca döngünün geçerli yinelemesinin tüm döngü yerine çıkmasına neden olması dışında.
Bu ifade, bir hata oluştuğunda ancak döngünün bir sonraki yinelemesini yürütmek istediğinizde kullanışlıdır.
Sözdizimi
continue
Break deyiminde olduğu gibi, iç içe döngülerden komutları atlamak için continue komutuna bir tamsayı argümanı verilebilir.
continue n
Buraya n belirtir nth devam etmek için çevreleyen döngü.
Misal
Aşağıdaki döngü, continue continue ifadesinden dönen ve bir sonraki ifadeyi işlemeye başlayan ifade -
#!/bin/sh
NUMS="1 2 3 4 5 6 7"
for NUM in $NUMS
do
Q=`expr $NUM % 2`
if [ $Q -eq 0 ]
then
echo "Number is an even number!!"
continue
fi
echo "Found odd number"
done
Yürütme üzerine, aşağıdaki sonucu alacaksınız -
Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number