Hurriyet

20 Kasım 2013 Çarşamba

Linux / Unix: Shell Scripting While Conditions - While Koşulları

Önceki yazımızda If/Else koşulunu incelemiştik. Bu yazımızda da While yapısını inceleyeceğiz.  While yapısında içerideki kodlar tekrar tekrar çalıştırılabilinir. Genel syntax'ı aşağıdaki gibidir.

 while [ koşul ]  
 do  
   komutlar  
 done  


Burada sonsuz döngü oluşması için içerideki koşulun asla yanlış hale gelmemesi gerekir. İçerideki koşul herhangi bir boolean ifade yani doğru veya yanlış bir ifade olabilir.

Buradaki örnekte 1'den 5'e  kadar sayıları yazdırırız.:

 #!/bin/bash  
 x=1  
 while [ $x -le 5 ]  
 do  
  echo " $x "  
  x=$(( $x + 1 ))  
 done 


Aşağıdaki örneğimizde de faktoriyel hesabı yaptırmaktayız. Bu örnekte sayac'ımızı dışardan vermekteyiz. Yani bu programı "abc.sh" olarak kaydedip "chmod 777 abc.sh" olarak yetkilerini verdikten sonra    "./abc.sh 5" şeklinde çalıştırdığımızda bize 5 faktoriyelin cevabını verir.

 #!/bin/bash
 x=$1  #Sayac
 a=1
 echo $x;
 while [ $x -gt 0 ]
 do
   a=$(( $a * $x ))
   x=$(( $x - 1 ))
 done
 echo $a

Continue İfadesi:

While döngülerinde continue ifadesi bir sonraki iterasyona geçmek için kullanılır. Yani örnek olarak sayacımız 10'dan geriye sayarken 5'te atlamasını istiyorsak, 5 bizim için istisna bir değerse, if deyip değerimiz 5'e geldiğinde atlamasını isteyebiliriz.

Continue syntax'ı aşağıdaki gibidir.


while [ koşul ]  
 do  
  ifadeler 
  if (koşul)  #Örnek olarak x=5 ise
  then  
      continue  
  fi  
  ifadeler
 done  

Break İfadesi:

Break ifadesi bizi direk döngüden çıkaran bir ifadedir. Yani yukarıdaki örneğimizdeki döngüde "continue"  bizi bir iterasyon sonrasına gönderirken, break ile döngüyü tamamen kırabiliriz. Bu şekilde örneğin while döngümüzün de sonsuz olmasını engelleyebilir, kendimize bir çıkış yolu yaratabiliriz.

while [ koşul ]  
 do  
  ifadeler 
  if (koşul)  #Örnek olarak x=5 ise
  then  
      break 
  fi  
  ifadeler
 done  
















Hiç yorum yok:

Yorum Gönder