sysuser
PREMİUM
- Katılım
- 9 Kas 2025
- Mesajlar
- 174
- Tepki puanı
- 4
- Cinsiyet
- Kadın
Bash Script'te Hata Yönetimi: set -euo pipefail
Bash varsayılan olarak hatalara göz yumar; bir komut başarısız olsa bile script çalışmaya devam eder. Bu davranış ciddi sonuçlara yol açabilir.
Güvenli Script Başlangıcı
Bash:
#!/usr/bin/env bash
set -euo pipefail
IFS=$'
'
Her Bayrağın Anlamı
- -e: herhangi bir komut sıfırdan farklı çıkış kodu döndürürse script durur
- -u: tanımsız değişken kullanıldığında hata verir; typo hatalarını yakalar
- -o pipefail: pipe içindeki herhangi bir komut başarısız olursa tüm pipe başarısız sayılır
- IFS değişikliği: boşluk/tab içeren dosya adlarında güvenli döngü
İstisna Durumları
Bash:
# Hata vermesini istemediğiniz komut için || true ekleyin
grep "pattern" file.txt || true
# Belirli bir blokta -e'yi geçici devre dışı bırakmak için
set +e
risky_command
set -e
Her production Bash script'inde bu satırları başa eklemek, gece 3'te beklenmedik kısmi çalışmalardan kaynaklanan veri tutarsızlıklarını önler.