-
Sadrazamv4
instagram:sadrazam.spy Tg:Sadrazamv4
🚀 BAŞTAN SONA BASH SCRIPTING BÖLÜM-4: Döngüler (`for`, `while`, `until`) ve Akış Kontrolü 🌀
Selamlar! Serimizin 4. bölümüne hoş geldiniz.
Önceki bölümde aritmetik işlemleri, karşılaştırma operatörlerini ve `if/else` karar yapılarını incelemiştik. Bu bölümde ise tekrarlayan işleri otomatikleştirmemizi sağlayan ve betiklerimizin omurgasını oluşturan **Döngüler (Loops)** konusunu işleyeceğiz.
Bash'te 3 temel döngü yapısı vardır:
1. **`for` Döngüsü:** Belirli bir liste, aralık veya dizi üzerinde gezinmek için kullanılır.
2. **`while` Döngüsü:** Belirtilen koşul `true` (doğru) olduğu sürece çalışır.
3. **`until` Döngüsü:** Belirtilen koşul `true` olana kadar (yani koşul `false` olduğu sürece) çalışır.
---
📌 1. `for` Döngüsü ve Kullanım Şekilleri 🔄
`for` döngüsü bir eleman listesi üzerinde sırayla işlem yapmak için idealdir.
### A. Liste ve Liste Elemanları Üzerinde Dönme:
#!/bin/bash
for MEYVE in elma armut muz çilek
do
echo "Mevcut Meyve: $MEYVE"
done
### B. Sayısal Aralık (Range) Üzerinde Dönme `{başlangıç..bitiş..adım}`:
#!/bin/bash
# 1'den 5'e kadar sayar
for SAYI in {1..5}
do
echo "Sayı: $SAYI"
done
# 0'dan 20'ye 5'er 5'er artarak sayar
for ADIM in {0..20..5}
do
echo "Adım: $ADIM"
done
### C. C-Style (Klasik C Dili Tarzı) `for` Döngüsü:
#!/bin/bash
for (( i=1; i<=5; i++ ))
do
echo "İndeks: $i"
done
---
📂 2. Dosya ve Klasörler Üzerinde `for` Döngüsü 📁
Sistem yönetiminde dizindeki dosyaları toplu olarak işlemek (örneğin uzantı değiştirmek, yedeklemek) için `for` döngüsü sıkça kullanılır.
#!/bin/bash
# Bulunduğumuz dizindeki tüm .txt dosyalarını döngüye alır
for DOSYA in *.txt
do
# Eğer dizinde hiç .txt yoksa *.txt ifadesini metin olarak almasın diye kontrol ekleriz
if [ -f "$DOSYA" ]; then
echo "İşleniyor: $DOSYA"
# Örnek İşlem: Her txt dosyasının bir yedeğini oluştur
cp "$DOSYA" "${DOSYA}.bak"
fi
done
---
⏳ 3. `while` Döngüsü 🔄
`while` döngüsü verilen koşul doğru (`true`) olduğu sürece parantez içindeki kodları çalıştırmaya devam eder.
#!/bin/bash
SAYAC=1
while [ $SAYAC -le 5 ]
do
echo "Sayaç Değeri: $SAYAC"
((SAYAC++)) # Sayacı 1 artırır
done
---
📄 4. `while` İle Dosyaları Satır Satır Okuma 📖
Bir metin dosyasının içeriğini satır satır okuyup işlemek için `while read` kalıbı kullanılır.
#!/bin/bash
DOSYA="sunucular.txt"
# Eğer dosya yoksa örnek bir dosya oluşturalım
if [ ! -f "$DOSYA" ]; then
echo -e "192.168.1.1\n192.168.1.2\n192.168.1.3" > "$DOSYA"
fi
echo "--- Sunucu Listesi Okunuyor ---"
while read -r SATIR
do
echo "Sunucu IP: $SATIR"
done < "$DOSYA"
---
🛑 5. `until` Döngüsü 🎯
`until` döngüsü `while` döngüsünün tam tersidir. Belirtilen koşul **YANLIŞ (`false`)** olduğu sürece çalışır; koşul **DOĞRU (`true`)** olduğu an döngüden çıkar.
#!/bin/bash
SAYAC=1
# Sayac 5'ten BÜYÜK OLANA KADAR çalışır
until [ $SAYAC -gt 5 ]
do
echo "Until Sayaç: $SAYAC"
((SAYAC++))
done
---
⚡ 6. Döngü Kontrolleri: `break` ve `continue` 🎛️
• `break`: Döngüyü anında sonlandırır ve döngü dışına çıkar.
• `continue`: Döngünün o anki adımını atlar ve bir sonraki adıma geçer.
#!/bin/bash
echo "--- Break ve Continue Testi ---"
for SAYI in {1..10}
do
# 3 sayısını atla (Pas geç)
if [ $SAYI -eq 3 ]; then
echo "Sayı 3 atlandı!"
continue
fi
# 7 sayısına gelince döngüyü tamamen durdur
if [ $SAYI -eq 7 ]; then
echo "Sayı 7 oldu, döngü sonlandırılıyor!"
break
fi
echo "Sayı: $SAYI"
done
---
📝 Bölüm Özeti ve Gelecek Bölüm 🔮
Bu bölümde `for`, `while` ve `until` döngülerini, dosya okuma tekniklerini ve `break`/`continue` akış kontrol komutlarını öğrendik.
👉 Bölüm 5'te Bizi Ne Bekliyor?
• Fonksiyonlar (Functions) ve Parametre Geçirme
• Yerel (Local) ve Küresel (Global) D
eğişkenler
• `select` Menü Yapısı İle İnteraktif Konsol Arayüzleri Oluşturma
Sorularınızı konu altından iletebilirsiniz. Bir sonraki bölümde görüşmek üzere! 🐚✨
Selamlar! Serimizin 4. bölümüne hoş geldiniz.
Önceki bölümde aritmetik işlemleri, karşılaştırma operatörlerini ve `if/else` karar yapılarını incelemiştik. Bu bölümde ise tekrarlayan işleri otomatikleştirmemizi sağlayan ve betiklerimizin omurgasını oluşturan **Döngüler (Loops)** konusunu işleyeceğiz.
Bash'te 3 temel döngü yapısı vardır:
1. **`for` Döngüsü:** Belirli bir liste, aralık veya dizi üzerinde gezinmek için kullanılır.
2. **`while` Döngüsü:** Belirtilen koşul `true` (doğru) olduğu sürece çalışır.
3. **`until` Döngüsü:** Belirtilen koşul `true` olana kadar (yani koşul `false` olduğu sürece) çalışır.
---
📌 1. `for` Döngüsü ve Kullanım Şekilleri 🔄
`for` döngüsü bir eleman listesi üzerinde sırayla işlem yapmak için idealdir.
### A. Liste ve Liste Elemanları Üzerinde Dönme:
#!/bin/bash
for MEYVE in elma armut muz çilek
do
echo "Mevcut Meyve: $MEYVE"
done
### B. Sayısal Aralık (Range) Üzerinde Dönme `{başlangıç..bitiş..adım}`:
#!/bin/bash
# 1'den 5'e kadar sayar
for SAYI in {1..5}
do
echo "Sayı: $SAYI"
done
# 0'dan 20'ye 5'er 5'er artarak sayar
for ADIM in {0..20..5}
do
echo "Adım: $ADIM"
done
### C. C-Style (Klasik C Dili Tarzı) `for` Döngüsü:
#!/bin/bash
for (( i=1; i<=5; i++ ))
do
echo "İndeks: $i"
done
---
📂 2. Dosya ve Klasörler Üzerinde `for` Döngüsü 📁
Sistem yönetiminde dizindeki dosyaları toplu olarak işlemek (örneğin uzantı değiştirmek, yedeklemek) için `for` döngüsü sıkça kullanılır.
#!/bin/bash
# Bulunduğumuz dizindeki tüm .txt dosyalarını döngüye alır
for DOSYA in *.txt
do
# Eğer dizinde hiç .txt yoksa *.txt ifadesini metin olarak almasın diye kontrol ekleriz
if [ -f "$DOSYA" ]; then
echo "İşleniyor: $DOSYA"
# Örnek İşlem: Her txt dosyasının bir yedeğini oluştur
cp "$DOSYA" "${DOSYA}.bak"
fi
done
---
⏳ 3. `while` Döngüsü 🔄
`while` döngüsü verilen koşul doğru (`true`) olduğu sürece parantez içindeki kodları çalıştırmaya devam eder.
#!/bin/bash
SAYAC=1
while [ $SAYAC -le 5 ]
do
echo "Sayaç Değeri: $SAYAC"
((SAYAC++)) # Sayacı 1 artırır
done
---
📄 4. `while` İle Dosyaları Satır Satır Okuma 📖
Bir metin dosyasının içeriğini satır satır okuyup işlemek için `while read` kalıbı kullanılır.
#!/bin/bash
DOSYA="sunucular.txt"
# Eğer dosya yoksa örnek bir dosya oluşturalım
if [ ! -f "$DOSYA" ]; then
echo -e "192.168.1.1\n192.168.1.2\n192.168.1.3" > "$DOSYA"
fi
echo "--- Sunucu Listesi Okunuyor ---"
while read -r SATIR
do
echo "Sunucu IP: $SATIR"
done < "$DOSYA"
---
🛑 5. `until` Döngüsü 🎯
`until` döngüsü `while` döngüsünün tam tersidir. Belirtilen koşul **YANLIŞ (`false`)** olduğu sürece çalışır; koşul **DOĞRU (`true`)** olduğu an döngüden çıkar.
#!/bin/bash
SAYAC=1
# Sayac 5'ten BÜYÜK OLANA KADAR çalışır
until [ $SAYAC -gt 5 ]
do
echo "Until Sayaç: $SAYAC"
((SAYAC++))
done
---
⚡ 6. Döngü Kontrolleri: `break` ve `continue` 🎛️
• `break`: Döngüyü anında sonlandırır ve döngü dışına çıkar.
• `continue`: Döngünün o anki adımını atlar ve bir sonraki adıma geçer.
#!/bin/bash
echo "--- Break ve Continue Testi ---"
for SAYI in {1..10}
do
# 3 sayısını atla (Pas geç)
if [ $SAYI -eq 3 ]; then
echo "Sayı 3 atlandı!"
continue
fi
# 7 sayısına gelince döngüyü tamamen durdur
if [ $SAYI -eq 7 ]; then
echo "Sayı 7 oldu, döngü sonlandırılıyor!"
break
fi
echo "Sayı: $SAYI"
done
---
📝 Bölüm Özeti ve Gelecek Bölüm 🔮
Bu bölümde `for`, `while` ve `until` döngülerini, dosya okuma tekniklerini ve `break`/`continue` akış kontrol komutlarını öğrendik.
👉 Bölüm 5'te Bizi Ne Bekliyor?
• Fonksiyonlar (Functions) ve Parametre Geçirme
• Yerel (Local) ve Küresel (Global) D
eğişkenler
• `select` Menü Yapısı İle İnteraktif Konsol Arayüzleri Oluşturma
Sorularınızı konu altından iletebilirsiniz. Bir sonraki bölümde görüşmek üzere! 🐚✨
🔒 Bu içeriği görmek için giriş yapın