Giriş
Bash scriptleri genellikle küçük bir görevle başlar ancak zamanla karmaşık otomasyon süreçlerine dönüşür. Küçük bir ihmal, üretim ortamında (production) ciddi kesintilere yol açabilir. Bu rehber, scriptlerinizi daha güvenli, okunabilir ve yeniden çalıştırılabilir hale getirmek için gerekli standartları açıklar.
1. Doğru Shebang Kullanımı
Her script mutlaka uygun bir shebang satırı ile başlamalıdır. Taşınabilirlik için #!/usr/bin/env bash kullanılması önerilir. Bu, Bash'in sistemdeki PATH üzerinden bulunmasını sağlar.
2. Strict Mode (Katı Mod) ile Hata Yönetimi
Bash varsayılan olarak hataları görmezden gelir. Scriptin hata anında durmasını sağlamak için şu satırı ekleyin:
#!/usr/bin/env bash
set -euo pipefail-e: Hata durumunda scripti hemen durdurur.-u: Tanımlanmamış değişkenleri hata olarak kabul eder.-o pipefail: Pipe hattındaki herhangi bir komut hata verirse tüm hattı başarısız sayar.
İpucu: Eğer bir komutun hata vermesi beklenen bir durumsa, komut || true şeklinde istisna tanımlayabilirsiniz.3. Değişkenleri Her Zaman Tırnak İçine Alın
Değişkenlerin tırnak içine alınmaması (örn: $file yerine "$file"), boşluk içeren dosya isimlerinde veya boş değişkenlerde beklenmedik hatalara yol açar. Her zaman çift tırnak kullanmayı alışkanlık haline getirin.
4. Testler İçin [[ ]] Kullanımı
Eski [ ] yapısı yerine daha modern ve güvenli olan [[ ]] yapısını tercih edin. Bu yapı, boş değişkenleri daha iyi yönetir ve regex desteği sunar.
5. Hata Yakalama (Error Handling) ve Temizlik
Scriptin nerede hata verdiğini anlamak için trap komutunu kullanın:
on_error() {
echo "Hata: Satır $1"
}
trap 'on_error $LINENO' ERRAyrıca geçici dosyaları temizlemek için trap 'rm -rf "$tmp_dir"' EXIT kullanarak scriptin her koşulda (başarılı veya başarısız) temizlik yapmasını sağlayın.
6. Shellcheck Kullanımı
Kodunuzu yazdıktan sonra mutlaka shellcheck aracını çalıştırın. Bu araç, yaygın hataları (güvensiz döngüler, tırnak eksiklikleri vb.) otomatik olarak tespit eder.
7. İdempotency (Tekrarlanabilirlik)
Scriptlerinizin ikinci kez çalıştırıldığında hata vermemesi için mkdir -p gibi komutlar kullanın ve işlemlerin zaten yapılıp yapılmadığını kontrol eden if blokları oluşturun.



