Bash Script Nasıl Kullanılır? Bash Script Örnekleri
Unix işletim sisteminde bulunan bash script, en popüler programlama araçlarından bir tanesidir. Açılımı Bourne Again Shell bütün Linux kullanıcıları ya da Sistem Yöneticileri için güçlü bir araçtır.
Unix’in iki tane büyük kabuk kategorisi bulunmaktadır:
- Bourne kabuğu
- C kabuğu
Bourne kabuğuna dahil olan kabuklar ise aşağıdaki gibidir:
- Korn kabuğu (ksh)
- Bourne kabuğu (sh)
- POSIX kabuğu (sh)
- Bourne Again kabuğu (bash)
C kabuğuna dahil olan kabuklar ise aşağıdaki gibidir:
- C shell (csh)
- TENEX (TOPS) C shell (tcsh)
Bash script geliştirmek için son derece güçlü ve kullanışlı bir parçadır. Tekrarlanan görevleri tek satırlık işlev çağrısına sığdırmayı başarmaktadır. Bu sayede çok sayıda uzun komutların bir tek çalıştırabilir komuta indirgemektedir.
Bütün Linux dağıtımlarında bulunan bash script ayrıca bir kurulum gerektirmez. Aşağıda belirttiğimiz komutlar ile mevcut kabukları kontrol etmeniz mümkündür.
cat /etc/shells
Sonucu aşağıdaki gibi olacaktır:
/bin/bash /bin/sh /bin/tcsh /bin/csh
Bash Script Kullanımının Nedenleri
Bash script ile:
- Tekrarlanan görevleri ortadan kaldırmanız mümkündür.
- Zaman kazanmanızı sağlamaktadır.
- İyi yapılı, modüler ve formatlı etkinlik sırası elde etmenizi sağlamaktadır.
- Karışık komutlar ile uğraşmaktansa bu komutları tek bir komuta indirgemeniz mümkündür.
- Bash script bir kez oluşturulduktan sonra herkes istediği kadar çalıştırabilir.
- Bash scriptler kullanılarak mantıksal akışlar kurulabilir.
- Bash fonksiyonlarının sunucu olarak başlatıldığında ya da zamanlanmış bir görev eklenerek çalıştırılmaktadır.
- Komutlarda hata ayıklaması yapılmaktadır.
- İnteraktif kabuk komutlarına da sahip olmak mümkündür.
İş akışınızı kolaylaştırmak ve projenizi geliştirmek için Bash script son derece mükemmel bir araçtır.
Bash Script’ine Giriş
İlk olarak VPS sunucunuza veya işletim sisteminize konsol (SSH) ile giriş yapmanız gerekmektedir.
man bash
Şimdi sırada bir .sh dosyası oluşturma işlemi vardır. Bunun için ise VIM Editor‘ü kullanmalısınız. Bir dosya oluşturmak için aşağıda belirtilen komutu uygulayın.
vim ornekFonksiyon.sh
Sırada ise oluşturmuş olduğunuz .sh dosyasına yönlendirilerek dosyayı düzenlemeniz mümkün olacaktır.
Bu yazı size Bash komutlarına ve kullanımları ile ilgili kapsamlı bir sonuç sunacaktır. Bash scriptlerin tümü aşağıda belirtilen satır ile başlamalıdır:
#!/bin/bash
Aşağıda belirtilen komut bash script’inin konumunun görüntülenmesini sağlayacaktır.
which bash
Bu komutun sonucu aşağıdaki gibi olacaktır.
/bin/bash
En sık rastlanan bash söz dizimi ise şu şekildedir:
fonksiyon fonksiyonAdi { ilk komut ikinci komut }
Bu yazı ayrıca şu şekilde de karşınıza çıkabilir:
fonksiyonAdi (){ ilk komut ikinci komut }
Tek bir satırda ise şu şekilde olacaktır:
fonksiyonAdi() { ilk komut; ikinci komut; } caca
Bu türden olan bir fonksiyonun örneği ise aşağıda belirtildiği gibidir. Bu komutta ilk olarak bir dizin oluşturulur ardından ise konum yeni dizin ile değiştirilir:
ornekFonksiyon () { mkdir -p $1 cd $1 }
$1 olan komut satırı bağımsız giriş değişkenlerinin yerine kullanılır. Bash komut içinde dinamik girişler oluşturabilir. Bu fonksiyonu doğrulamak için çalıştırmanız gereken komut ise aşağıdaki gibi olacaktır:
ornekFonksiyon Dizin
Burada oluşturulacak olan Dizin geçerli bir dizin adıdır. Şuan da çalışan dizini pwd komutu ile kontrol ederseniz eğer yeni oluşturulan Dizin adlı dizinde çalıştığını göreceksiniz.
VIM Editor ile .sh dosyanızın düzenlemesinin bittiği zaman ESC tuşuna basarak komut moduna girebilir ve :wq yazarak kaydederek çıkabilirsiniz.
Bash Script Örnekleri
Bash fonksiyonu ile verilebilecen en temel aşağıda belirttiğimiz gibidir:
#!/bin/bash testfunction(){ echo "Ilk fonksiyonum" } testfunction
Eğer bu scripti testFunction.sh olarak kaydederseniz daha sonra da ./testFunction.sh olarak çalıştırırsanız sonucu aşağıdaki gibi görebilirsiniz:
Ilk fonksiyonum
Echo sonucu konsolda göstermektedir. Eğer fonksiyon tanımının yerini bir çağrı ile değiştirirseniz hata meydana gelecektir. Aşağıdaki script size hata verecektir:
#!/bin/bash testfunction testfunction(){ echo "My Ilk fonksiyonum" }
Bundan dolayı ilk olarak fonksiyonu tanımlamanız daha sonra ise çalıştırmanız gerekmektedir.
Bash fonksiyonu istenilen sayıda parametre kabul etmektedir. Aşağıda belirttiğimiz örnek iki parametreyi kabul edecektir:
#!/bin/bash testfunction(){ echo $1 echo $2 }
testfunction "Merhaba" "Dünya"
Aşağıda belirtilen interaktif girişi kullanarak bash fonksiyonlarını gerçekleştirebilirsiniz. Buna bir örnek verecek olursak eğer aşağıdaki gibi olacaktır:
#!/bin/bash addition(){ sum=$(($1+$2)) return $sum } read -p "Bir rakam girin: " int1 read -p "Bir rakam girin: " int2 add $int1 $int2 echo "Sonuc : " $?
Yukarıda gösterdiğimiz örnekte yer alan toplama değeri değişken bir sonuca atanmıştır ve bu fonksiyondan dönecektir. Interaktif giriş ise iki rakam için de read kelimesini kullanarak elde edilmektedir. Sonuç $? kullanılarak verilir. $?, fonksiyondan dönüş değerini $sum depolar.
Bash fonksiyonları her zaman tek bir değer verir.
Dosya içinde # sembolünü kullanıp not bırakmanız mümkündür.
Bash scriptleri aşağıda belirtilenleri desteklemektedir:
- While döngüsü
- For döngüsü
- If ifadesi
- Ve mantığı
- Veya mantığı
- Else If ifadesi
- Case ifadesi
Aşağıdaki While döngüsüne ait kısa bir örnek vereceğiz:
#!/bin/bash isvalid=true count=1 while [ $isvalid ] do echo $count if [ $count -eq 6 ]; then break fi ((count++)) done
Yukarıda gördüğümüz örnek while ve if ifadelerini kullanmaktadır. Bu örnekte yer alan if koşul ifadesi kontrol edilip çıkış yapılmadan önce loop döngüsünü 6 defa çalıştırır.
Sonuç böyle olacaktır:
1 2 3 4 5 6
For döngüsü sayaçları artırmak ve azaltmak için kullanılmaktadır. Bu türden bir for döngüsüne bir örnek verecek olursak eğer aşağıdaki gibi olacaktır:
#!/bin/bash for (( count=10; count>0; count-- )) do echo -n "$count " done
Bu for döngüsünün sonucu ise aşağıdaki gibi olacaktır:
10 9 8 7 6 5 4 3 2 1
Bash’de && işareti mantıksal VE’yi temsil ederken || işareti ise mantıksal VEYA’yı temsil etmektedir.
If ifadeleriyle ayrıca Else if‘i tanımlamanız mümkündür. Buna bir örnek verecek olursak eğer aşağıdaki gibi olacaktır:
#!/bin/bash echo "Gecerli bir rakam girin" read n if [ $n -eq 101 ]; then echo "Bu ilk rakam" elif [ $n -eq 510 ]; then echo " Bu ikinci rakam " elif [ $n -eq 999 ]; then echo " Bu ucuncu rakam " else echo "Burada rakam yok" fi
Aşağıdaki örnek ayrıca case ifadesi ile aşağıda belirtildiği gibi yazılmaktadır:
#!/bin/bash echo " Enter a valid number" read n case $n in 101) Echo " This is the first number " ;; 510) echo " This is the second number " ;; 999) echo " This is the third number " ;; *) echo " No numbers over here " ;; esac
Case ifadelerinde ;; işareti case aralarını temsil etmektedir.
Sonuç
Bash gerçekten güçlü bir araçtır fakat öğrenimi basittir. Umarız sizler için oluşturduğumuz bu yazı işinize yarayacaktır.
Bash Script Nasıl Kullanılır? Bash Script Örnekleri başlıklı yazımız ile ilgili aklınıza takılan sorularınızın yanıtını alabilmeniz için veya öneride bulunabilmeniz için aşağıda yer alan yorumlar kısmını kullanarak bizimle iletişime geçebilirsiniz.
Dilerseniz daha önce bloğumuzda paylaştığımız OpenVPN Kullanarak Linux Sanal Sunucu Kurulumu başlıklı yazımızı da okuyabilirsiniz.