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 fazla kez tekrar etmeniz gerekir. Aynı komutu defalarca yazmak yerine, bir öğe listesinden geçip her birinde bir eylem gerçekleştirmek için for döngüsünü kullanabilirsiniz.
İşte Bash'te bir for döngüsünün temel yapısı:
#!/bin/bash
for name in Alice Bob Charlie; do
echo "Hello, $name!"
doneBu betik, listedeki her isim için bir selamlama çıktısı verir. Değişken name sırayla her değeri alır: önce "Alice", sonra "Bob", sonra "Charlie". do anahtar kelimesi döngü gövdesinin başlangıcını işaretler ve done onu bitirir.
For döngüleri, joker karakterlerle birleştirildiğinde özellikle güçlüdür. Bir dizindeki tüm dosyaları döngüye alabilirsiniz:
#!/bin/bash
for file in *.txt; do
echo "Processing $file"
doneBu, mevcut dizindeki her .txt dosyasının üzerinden yineleme yapar. Her yinelemede, file değişkeni geçerli dosya adını tutar ve her dosya üzerinde otomatik olarak işlemler gerçekleştirmenizi sağlar.
Ayrıca süslü parantez genişletmesini kullanarak bir sayı aralığında döngü yapabilirsiniz:
#!/bin/bash
for i in {1..5}; do
echo "Number: $i"
doneBu, 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ürür, betiklerinizi daha verimli ve bakımını kolay hale getirir.
Görev
Kolaycountdown.sh adlı bir kabuk betiği oluşturun ki bu betik 5'ten 1'e kadar geri sayımı yazdırmak için bir for döngüsü kullansın.
Betikiniz şunları yapmalı:
- Shebang satırıyla başlamalı (
#!/bin/bash) - 5'ten 1'e kadar sayıları yinelemek için süslü parantez genişletmesi ile bir for döngüsü kullanmalı
- Her sayıyı kendi satırında
Countdown: [number]formatında yazdırmalı
Betiği çalıştırılabilir hale getirin ve çalıştırın. Çıktınız şöyle olmalı:
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ü içinde, döngü değişkeniniziiseecho "Countdown: $i"kullanın.
Kopya kağıdı
Bir for döngüsü, bir öğe listesi üzerinden yinelemenize ve her birinde bir eylem gerçekleştirmenize olanak tanır.
Temel sözdizimi:
for variable in list; do
# commands
doneDeğer listesi üzerinden döngü:
for name in Alice Bob Charlie; do
echo "Hello, $name!"
doneJoker karakterler kullanarak dosyalardan döngü:
for file in *.txt; do
echo "Processing $file"
doneSüslü parantez genişletmesi kullanarak sayı aralığından döngü:
for i in {1..5}; do
echo "Number: $i"
doneAzalan aralıklar için sırayı tersine çevirin:
for i in {5..1}; do
echo "Number: $i"
doneKendin 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ı