For Döngüsü
Coddy'nin Terminal Journey'sinin Temeller bölümünün bir parçası — ders 71 / 82.
Bazen bir eylemi birden çok kez yinelemeniz gerekir. Aynı komutu tekrar tekrar yazmak yerine, ögelerden oluşan bir liste boyunca yineleme yapmak ve her bir öge üzerinde bir eylem gerçekleştirmek için bir for döngüsü kullanabilirsiniz.
Bash'te bir for döngüsünün temel yapısı şu şekildedir:
#!/bin/bash
for name in Alice Bob Charlie; do
echo "Hello, $name!"
doneBu betik, listedeki her isim için bir karşılama metni yazdırır. name değişkeni sırasıyla her bir değeri alır: önce "Alice", sonra "Bob", sonra "Charlie". do anahtar sözcüğü döngü gövdesinin başlangıcını belirtir ve done döngüyü sonlandırır.
For döngüleri özellikle joker karakterlerle birleştirildiğinde çok güçlüdür. Bir dizindeki tüm dosyalar üzerinde döngü kurabilirsiniz:
#!/bin/bash
for file in *.txt; do
echo "Processing $file"
doneBu işlem, geçerli dizindeki her .txt dosyasını sırayla gezer. Her yinelemede, file değişkeni mevcut dosya adını tutar ve her bir dosya üzerinde otomatik olarak işlemler gerçekleştirmenize olanak tanır.
Süslü parantez genişletmesini (brace expansion) kullanarak bir sayı aralığı üzerinde de döngü oluşturabilirsiniz:
#!/bin/bash
for i in {1..5}; do
echo "Number: $i"
doneBu işlem 1'den 5'e kadar olan sayıları yazdırır. For döngüleri, tekrarlayan görevleri sadece birkaç satır koda dönüştürerek betiklerinizi daha verimli ve bakımı daha kolay hale getirir.
Görev
Kolay5'ten 1'e doğru geri sayım yazdırmak için bir for döngüsü kullanan countdown.sh adında bir shell betiği oluşturun.
Betiğiniz şunları yapmalıdır:
- Shebang satırı (
#!/bin/bash) ile başlamalıdır - 5'ten 1'e kadar olan sayıları yinelemek için süslü parantez genişletmesi (brace expansion) içeren bir for döngüsü kullanmalıdır
- Her sayıyı kendi satırında şu biçimde yazdırmalıdır:
Countdown: [number]
Betiği çalıştırılabilir hale getirin ve çalıştırın. Çıktınız şu şekilde olmalıdır:
Countdown: 5
Countdown: 4
Countdown: 3
Countdown: 2
Countdown: 1İpucu: Azalan bir aralık oluşturmak için
{5..1}kullanın. Döngünün içinde, döngü değişkeniniziolmak üzereecho "Countdown: $i"kullanın.
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ı