Bash scriptleri en temel olarak terminalde girdigimiz/girecegimiz birden fazla komutu tek bir dosyada calistirmamiza yarar. Linuxda yapacağımız otomasyon islerinde kullanilir. Ornegin gunun belirle bir saatinde yedek almak veya belirli araliklarla donanim kontrolu yapip sonuclari bir mail; adresine gondermek gibi.
if komutu:
Programla dillerine asina olanlar if (eger) komutunun ne ise yaradigini bilirler. Bu bir kosul dongusudur ve istedigimiz bir kosulu sinayip ona gore aksiyon almamiza yarar. if koşulunu bashda 2 farklı şekilde kullanabiliriz. Birincisi parantezler içinde bir koşulu sınayarak, ikinci ise bir komutu çalıştırarak. İkinci seçenekte çalıştırılan komut hatasız çalışırsa doğru(true) değerini döndürür.
if komutunun farklı kullanım örnekleri şu şekildedir.
1)
if [koşul]
then
//koşul doğruysa çalıştırılacak kod
fi
2)
if [koşul]
then
//koşul doğruysa çalıştırılacak kod
else
//koşul yanlışsa çalıştırılacak kod
fi
3)
if [koşul]
then
//ilk koşul doğruysa çalıştırılacak kod
elif [koşul2]
then
//ikinci koşul doğruysa çalıştırılacak kod
else
//ikisi de doğru değilse çalıştırılacak kod
fi
Not 1: Burda dikkat edilmesi gereken husus diğer programlama dilleri aksine else if yerine elif kullanılır.
Örnek:
if [ -f ~/dosya1 ]
then
echo "dosya1 adlı dosya bulundu"
fi
Örneğimizde home klasörümüz altında -f opsiyonu ile dosya1 adlı bir dosyanın bulunup bulunmadığını kontrol edip, bulunduysa konsola dosya1 adlı dosya bulundu diye yazdırıyoruz.
Not 2: Bash scriptlerinde if ile açılan yapılar fi sözcüğüyle kapatılır.
Not 3: if yapılarında parantezler ve kullanılan her öğe arasında boşluk olduğuna dikkat edin.
Örnek 2:
if [ -d ~/klasör1/ ]
then
echo "dosya1 adlı klasör bulundu"
fi
Bu örnekte de -d opsiyonuyla home klasörümüz altında klasör1 adlı bir klasör olup olmadığını test edip, varsa dosya1 adlı klasör bulundu yazısını ekrana yazdırdık.
Örnek 3:
if grep -q "^faruk:" /etc/passwd;
then
echo "kullanıcı bulundu."
fi
Burda grep -q komutuyla /etc/password dosyamızın içine bakıp, faruk adını aratıyoruz. Eğer komut faruk adını bulursa ekrana kullanıcı bulundu yazdırır.
Not 4: Bir komutun olumlu sonuç verişine göre if komutunu kullandığımız için parantez kullanmadığımıza dikkat !
Not 5: [ ] Parantezler içine çok değişik türde karşılaştırma ve kontrol etme ifadesi yazılabilir. Bu ifadeleri görmek için terminalde help test komutunu kullanabilirsiniz.