While Döngüsü
Coddy'nin Terminal Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 72 / 82.
Hangi öğeler üzerinde yineleme yapacağınızı tam olarak bildiğinizde for döngüsü harikadır. Peki belirli bir koşul değişene kadar döngüyü sürdürmek isterseniz ne olacak? İşte bu noktada while döngüsü devreye girer.
Bir while döngüsü, koşulu doğru olduğu sürece çalışmaya devam eder. Temel yapısı şöyledir:
#!/bin/bash
count=1
while [ $count -le 5 ]; do
echo "Count: $count"
count=$((count + 1))
doneBu betik 1'den 5'e kadar olan sayıları yazdırır.
Döngü, count değerinin 5'ten küçük veya 5'e eşit olup olmadığını kontrol eder. Koşul doğruysa gövdeyi çalıştırır, aritmetik işlem için $((...)) kullanarak sayacı artırır ve tekrar kontrol eder.
count 6'ya ulaştığında koşul yanlış olur ve döngü durur.
While döngüleri, kaç yinelemeye ihtiyacınız olacağını önceden bilmediğinizde idealdir. Örneğin, kullanıcı "quit" yazana kadar girdi istemeye devam edebilirsiniz:
#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
read -p "Enter command (quit to exit): " input
echo "You entered: $input"
donewhile döngülerini kullanırken dikkatli ol. Koşul hiçbir zaman yanlış olmazsa döngün sonsuza kadar çalışır.
Döngünün içindeki bir şeyin, örneğin bir sayacı artırarak veya kullanıcı girdisine göre bir değişkeni güncelleyerek, koşulu sonunda değiştirdiğinden her zaman emin ol.
Görev
Kolay1'den 4'e kadar sayıları yazdırmak için while döngüsü kullanan counter.sh adlı bir kabuk betiği oluşturun.
Betik şunları yapmalıdır:
- Shebang satırıyla başlamalıdır (
#!/bin/bash) - İlk değeri
1olannumadlı bir değişken oluşturmalıdır numdeğeri 4'e eşit veya daha küçük olduğu sürece devam eden bir while döngüsü kullanmalıdır- Döngünün içinde geçerli sayıyı şu biçimde yazdırmalıdır:
Number: [num] - Her yinelemeden sonra
$((num + 1))kullanaraknumdeğerini 1 artırmalıdır
Betiği çalıştırılabilir hâle getirin ve çalıştırın. Çıktınız şöyle olmalıdır:
Number: 1
Number: 2
Number: 3
Number: 4İpucu: "küçük veya eşit" karşılaştırması için
-lekullanın. Sonsuz döngüyü önlemek için sayaç değerini döngünün içindenum=$((num + 1))ile artırmayı unutmayın. While döngünüzüdoneile bitirin.
Kendin dene
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temel Bilgiler bölümündeki tüm dersler
4Dizinler
Bir Dizin OluşturBir Dizin KopyalaBir Dizin Taşı ve Yeniden AdlandırBir Dizin SilÖzet - Dizin İşlemleri7Dosya İçeriği
Head ve TailKelime SayısıSort KomutuUnik KomutuGrep TemelleriBayraklarla GrepÖzet - Metin Dedektifi10Günlük Analizörü Projesi
Proje Genel BakışıGünlük Dosyasını Görüntüleme13Kabuk Betikleme Temelleri
Kabuk Betiği NedirBir Betik Oluştur ve ÇalıştırBetiklerde DeğişkenlerBetiklerde Kullanıcı GirdisiIf İfadesiFor DöngüsüWhile DöngüsüÖzet - Sayı Tahmincisi2Navigasyon
Çalışma Dizini'ni YazdırDosyaları ListeleDizin DeğiştirMutlak ve Göreli YollarEv ve Kök DizinÖzet - Yolunu Bul8Yönlendirme
Standart ÇıktıDosyaya Üzerine YazmaDosyaya EklemeStandart GirdiStandart HataÖzet - Günlük Oluşturucu3Dosyalar
Bir Dosya OluşturBir Dosya OkuBir Dosya KopyalaBir Dosyayı Taşı ve Yeniden AdlandırBir Dosya SilÖzet - Dosya İşlemleri6Joker Karakterler ve Desenler
Yıldız Joker KarakteriSoru İşareti Joker KarakteriKöşeli Parantez JokerleriJoker Karakterleri BirleştirmeÖzet - Seçici İşlemler9Borulama
Boru Nedir?İki Komutu ZincirlemeBirden Fazla Komutu ZincirlemeGrep ile BoruÖzet - Veri Boru HattıKendi başına pratik yap: Terminal playground