6 – Koşul Yapıları (Karar Verme) – Bash Scriptlerinde Koşullu İşlemler

Bash scriptlerinde koşul yapıları, belirli durumlarda komutların yürütülmesi için kullanılır. Bu yapılar, bir scriptin farklı durumlara ve koşullara göre nasıl davranacağını belirlemenin temel yoludur. Bu makalede, Bash scriptlerinde kullanılan koşul yapıları ve bunların kullanım şekilleri üzerinde duracağız. if-else
, elif
ve case
yapıları bu konunun temelini oluşturur ve her biri farklı türde koşullu işlemler gerçekleştirmek için kullanılır.
Koşul Yapılarının Önemi ve Kullanımı
Koşul yapıları, bir Bash scriptinde farklı durumlara göre farklı işlemler yapma gerekliliğinde ortaya çıkar. Örneğin, bir kullanıcının sistemde var olup olmadığını kontrol etmek, belirli bir dosyanın mevcut olup olmadığını doğrulamak ya da kullanıcının girdiği verilere göre belirli bir komutu çalıştırmak için koşul yapıları kullanılır. Bu yapılar, scriptlerin dinamik ve esnek olmasını sağlar ve aynı zamanda scriptin belirli durumlara uygun tepkiler verebilmesine olanak tanır.
1. if-else
Yapısı
if-else
yapısı, Bash scriptlerinde en sık kullanılan koşul yapılarından biridir. Bu yapı, belirli bir koşulun doğru (true) olup olmadığını kontrol eder ve buna göre belirli komutları çalıştırır. Eğer koşul doğru değilse, başka bir işlem yapılabilir.
Genel Söz Dizimi:
if [ koşul ]
then
komutlar
else
alternatif_komutlar
fi
if
: Koşulun başlatıldığını belirtir.[ koşul ]
: Kontrol edilmesi gereken koşulu ifade eder.[
işaretleri,test
komutu gibi çalışır ve koşulu kontrol eder.then
: Eğer koşul doğruysa (true
), ardından gelen komutların çalıştırılması gerektiğini ifade eder.else
: Koşul yanlışsa (false
), alternatif komutları belirtir.fi
: Koşul yapısının sonlandığını ifade eder.
Örnek Kullanım:
#!/bin/bash
echo "Bir sayı girin:"
read sayi
if [ $sayi -gt 10 ]
then
echo "Girdiğiniz sayı 10'dan büyük."
else
echo "Girdiğiniz sayı 10 veya daha küçük."
fi
Bu örnekte kullanıcıdan bir sayı girmesi istenir ve bu sayı 10’dan büyükse bir mesaj gösterilir, değilse farklı bir mesaj ekrana yazdırılır.
2. elif
Yapısı ile Çoklu Koşullar
Bazen, tek bir if-else
yapısı yeterli olmayabilir ve birden fazla koşul kontrol etmeniz gerekebilir. Bu durumda elif
(else if) yapısı kullanılarak ek koşullar eklenebilir.
Genel Söz Dizimi:
if [ koşul1 ]
then
komutlar1
elif [ koşul2 ]
then
komutlar2
else
alternatif_komutlar
fi
Örnek Kullanım:
#!/bin/bash
echo "Bir sayı girin:"
read sayi
if [ $sayi -gt 10 ]
then
echo "Girdiğiniz sayı 10'dan büyük."
elif [ $sayi -eq 10 ]
then
echo "Girdiğiniz sayı 10."
else
echo "Girdiğiniz sayı 10'dan küçük."
fi
Bu örnekte kullanıcıdan bir sayı girmesi istenir ve bu sayı 10’dan büyükse, 10’a eşitse veya küçükse, farklı mesajlar ekrana yazdırılır.
3. case
Yapısı ile Seçim Yapma
case
yapısı, bir değişkenin belirli değerlere göre farklı komutlar çalıştırılmasını sağlar. Bu yapı, birden fazla duruma göre farklı eylemler yapmak için if-elif-else
yerine daha düzenli bir alternatif sunar. Özellikle çok sayıda koşulun kontrol edilmesi gerektiğinde kullanışlıdır.
Genel Söz Dizimi:
case $değişken in
değer1)
komutlar1
;;
değer2)
komutlar2
;;
*)
varsayılan_komutlar
;;
esac
case $değişken in
:$değişken
değeri kontrol edilir.değer1)
vedeğer2)
: Bu değerlerle eşleşmesi durumunda çalıştırılacak komutlar belirtilir.;;
: Her durumda komutların bittiğini belirtir.*
: Hiçbir değerle eşleşmeme durumu için varsayılan komutları belirtir.esac
:case
yapısının sonlandığını belirtir.
Örnek Kullanım:
#!/bin/bash
echo "Lütfen bir meyve seçin (elma, muz, portakal):"
read meyve
case $meyve in
"elma")
echo "Elma seçtiniz."
;;
"muz")
echo "Muz seçtiniz."
;;
"portakal")
echo "Portakal seçtiniz."
;;
*)
echo "Geçersiz seçim yaptınız."
;;
esac
Bu örnekte kullanıcıdan bir meyve seçmesi istenir ve seçimine göre farklı mesajlar ekrana yazdırılır. Eğer kullanıcı geçersiz bir seçim yaparsa, varsayılan bir mesaj gösterilir.
Koşul Kontrollerinde Kullanılan Operatörler
Koşul yapılarını kullanırken yaygın olarak kullanılan bazı karşılaştırma operatörleri bulunmaktadır:
- Sayısal Karşılaştırma Operatörleri:
-eq
: Eşit ise (equal)-ne
: Eşit değil ise (not equal)-gt
: Büyüktür (greater than)-lt
: Küçüktür (less than)-ge
: Büyük veya eşittir (greater than or equal)-le
: Küçük veya eşittir (less than or equal)
- String Karşılaştırma Operatörleri:
=
: Eşit ise!=
: Eşit değil ise-z
: String boş ise-n
: String dolu ise
Bash scriptlerinde koşul yapıları, scriptlerin dinamik ve duruma bağlı bir şekilde davranmasını sağlamak için kullanılır. if-else
yapısı, belirli bir koşula bağlı olarak işlem yapmak için yaygın olarak kullanılırken, elif
ek koşullar eklemek için kullanılır ve case
yapısı birden fazla olasılığı daha düzenli ve okunabilir bir şekilde kontrol etmek için kullanılır. Bu koşul yapıları, Bash scriptlerini daha akıllı ve esnek hale getirerek çeşitli otomasyon süreçlerinde önemli bir rol oynar.
Koşul yapılarını kullanarak Bash scriptlerinizi daha güçlü hale getirebilir, sistem süreçlerini otomatikleştirebilir ve bu sayede verimliliğinizi artırabilirsiniz. Koşul yapılarının doğru kullanımı, scriptlerin farklı durumlara uygun bir şekilde yanıt vermesine ve dolayısıyla daha az hata yapmasına yardımcı olur.