Döngüler


FOR döngüsü

Yapısı şu şekilde görüntülenebilir:

for arg in [liste]
do
 # komut bloğu
done

Her bir döngüde, arg değişkeni [liste] içinden sıradaki değeri alır ve daha sonra komut bloğunun içine girer.

# Dizilerin içinde dolaşma örneği
isimler=(Nazım Vera Tomris Can)
for N in ${isimler[@]} ; do
  echo "Benim adım $N"
done
# Yukarıdaki kodu deneyin ve sonucu görün.
# For döngüsünü anlamınızda yardımcı olacaktır.

# Herhangi bir komutun sonucunda dolaşma örneği
for f in $( ls prog.sh /etc/localtime ) ; do
  echo "Dosyanın adı: $f"
done

WHILE döngüsü

Yapısı şu şekilde görüntülenebilir:

while [ koşul ]
do
 # komut bloğu
done

While döngüsü, içindeki koşul doğru olduğu müddetçe döngüye devam eder.

say=4
while [ $say -gt 0 ]; do
  echo "Sayma değeri: $COUNT"
  COUNT=$(($say - 1))
done

UNTIL döngüsü

Yapısı şu şekilde görüntülenebilir:

until [ koşul ]
do
 # komut bloğu
done

Until döngüsü, koşulu test eder ve koşul gerçekleşMEdiği müddetçe döngüye devam eder. Çalışma mantığı açısından While döngüsünün tam zıttıdır.

say=1
until [ $say -gt 5 ]; do
  echo "Sayma değeri: $COUNT"
  COUNT=$(($say + 1))
done

"break" ve "continue" Komutları

break ve continue komutları, döngüleri kontrol etmek için kullanılır. continue, sonraki iterasyona atlamamızı sağlar. Buna benzer olarak ise break, iterasyonları durdurur ve döngüyü kırar. Bunlar ile ilgili işte size birkaç örnek:

# 0,1,2,3,4 yazdırır.

COUNT=0
while [ $COUNT -ge 0 ]; do
  echo "COUNT'un değeri: $COUNT"
  COUNT=$((COUNT+1))
  if [ $COUNT -ge 5 ] ; then
    break
  fi
done

# Yalnızca tek sayıları yaz: 1,3,5,7,9
COUNT=0
while [ $COUNT -lt 10 ]; do
  COUNT=$((COUNT+1))
  # COUNT değeri tek mi onu kontrol et
  if [ $(($COUNT % 2)) = 0 ] ; then
    continue
  fi
  echo $COUNT
done

Exercise

Bu ödevinizde, size verilen NUMBERS dizisinin içindeki sayılardan 237 sayısından öncekileri ve çift olanları satır satır yazdırın. (Unutmayın, VE sözcüğü, iki koşulun da aynı anda gerçekleşmesi gerekliliğini ifade eder.)


Copyright © learnshell.org. Read our Terms of Use and Privacy Policy