While Döngüsü
Coddy'nin Terminal Journey'sinin Temeller bölümünün bir parçası — ders 72 / 82.
for döngüsü, tam olarak hangi öğeleri yineleyeceğinizi bildiğinizde harikadır. Ama ya belirli bir koşul değişene kadar döngüye devam etmek isterseniz? İşte burada while döngüsü devreye girer.
Bir while döngüsü, koşulu doğru kaldığı sürece çalışmaya devam eder. İşte temel yapı:
#!/bin/bash
count=1
while [ $count -le 5 ]; do
echo "Count: $count"
count=$((count + 1))
doneBu betik 1'den 5'e kadar sayıları yazdırır.
Döngü, count 5'ten küçük veya eşit olup olmadığını kontrol eder. Doğruysa gövdeyi çalıştırır, aritmetik 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ç iterasyona ihtiyacınız olduğunu önceden bilmediğinizde mükemmeldir. Örneğin, kullanıcı "quit" yazana kadar giriş sormaya devam edebilirsiniz:
#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
read -p "Enter command (quit to exit): " input
echo "You entered: $input"
doneWhile döngülerinde dikkatli olun. Koşul hiç false olmazsa, döngünüz sonsuza kadar çalışır.
Döngü içinde koşulu sonunda değiştirecek bir şeyin olduğundan her zaman emin olun, örneğin bir sayacı artırmak veya kullanıcı girdisine göre bir değişkeni güncellemek gibi.
Görev
Kolaycounter.sh adında bir kabuk betiği oluşturun ki bu betik while döngüsü kullanarak 1'den 4'e kadar sayıları yazdırsın.
Betikiniz şunları yapmalıdır:
- Shebang satırı ile başlayın (
#!/bin/bash) numadında bir değişken oluşturun ve başlangıç değeri1olsunnum4'e küçük veya eşit olduğu sürece devam eden bir while döngüsü kullanın- Döngü içinde, mevcut sayıyı şu formatta yazdırın:
Number: [num] - Her yinelemeden sonra
num'u$((num + 1))kullanarak 1 artırın
Betiği çalıştırılabilir hale 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üden kaçınmak için döngü içinde sayacınum=$((num + 1))ile artırdığınızı unutmayın. While döngünüzüdoneile bitirin.
Kopya kağıdı
Bir while döngüsü, koşulu doğru kaldığı sürece çalışmaya devam eder:
#!/bin/bash
count=1
while [ $count -le 5 ]; do
echo "Count: $count"
count=$((count + 1))
doneDöngü her yinelemeden önce koşulu kontrol eder. Sayaçları artırmak için aritmetik işlemler için $((...)) kullanın.
While döngüleri, kaç yineleme gerektiğini önceden bilmediğinizde faydalıdır, örneğin belirli kullanıcı girişini beklerken:
#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
read -p "Enter command (quit to exit): " input
echo "You entered: $input"
doneSonsuz döngülerden kaçınmak için döngünün içindeki bir şeyin koşulu sonunda değiştirdiğinden emin olun.
Kendin dene
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller 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ı