Unix’in iki adet büyük kabuk kategorisi vardır:
- Bourne kabuğu
- C kabuğu
Bourne kabuğuna dahil olanlar kabuklarsa:
- Korn kabuğu (ksh)
- Bourne kabuğu (sh)
- POSIX kabuğu (sh)
- Bourne Again kabuğu (bash)
C kabuğuna dahil olanlarsa:
- C shell (csh)
- TENEX (TOPS) C shell (tcsh)
Bash script geliştirmek için fazlasıyla güçlü ve kullanışlı bir parçadır. Tekrarlanan görevleri tek bir satırlık işlev çağrısına sığdırabilir. Böylece birçok uzun komutlar tek bir çalıştırabilir komuta indirgenebilir.
Bash script neredeyse bütün Linux dağıtımlarında bulunur ve ayrı bir kuruluma ihtiyaç duymaz. Aşağıdaki komutlar mevcut kabukları kontrol edebilirsiniz:
cat /etc/shells
Sonuç aşağıdaki gibi olacaktır:
/bin/bash /bin/sh /bin/tcsh /bin/csh
Neden Bash Script Kullanmalısınız?
Bash script ile:
- Tekrarlanan görevleri ortadan kaldırabilrsiniz
- Zaman kazanabilirsiniz
- İyi yapılı, modüler ve formatlı etkinlik sırası elde edersiniz
- Fonksiyonlarla komutlara komut satırı bağımsız değişkenlerini kullanarak dinamik değerler sağlayabilirsiniz
- Karışık komutları çalışan tek bir komuta indirgeyebilirsiniz
- Oluşturulduktan sonra herkes istediği kadar çalıştırabilir. Bir kere oluşturun, istediğiniz kadar çalıştırın.
- Bash scriptleri kullanılarak mantıksal akışlar kurulabilir
- Bash fonksiyonları sunucu başlatımında veya bir zamanlanmış görev eklenerek çalıştırılabilir
- Komutlarda hata ayıklama yapılabilir
- İnteraktif kabuk komutlarına sahip olunabilir
Bash script iş akışınızı kolaylaştırmak ve projenizi geliştirmek için kesinlikle harika bir araçtır. Kullanım potansiyelleriyse sınırsızdır ancak biz bugün size bash script temellerini öğreteceğiz. İlk scriptinizi yazmaya hazır olun!
Bash Script’ine Giriş
Başlamadan önce VPS sunucunuza SSH ile giriş yapmanız gerekmektedir. Eğer bununla ilgili sorun yaşıyorsanız bu kullanışlı rehbere göz atın.
Basit komut seçenekleriyle başlamak için bash için mevcut olan kılavuz sayfalarına göz atabilirsiniz:
man bash
Sırada ise bir .sh dosyası oluşturmak var. Bunun için VIM Editor‘ü kullanacaksınız. Bir dosya oluşturmak için bu komutu kullanın:
vim ornekFonksiyon.sh
Bundan sonra ise oluşturduğunuz .sh dosyasına yönlendirilecek ve dosyayı düzenleyebileceksiniz.
Bu size Bash komutlarına ve kullanımlarına dair kapsamlı bir sonuç sağlayacaktır. Bütün bash scriptleri aşağıdaki satırla başlamalıdır:
#!/bin/bash
Aşağıdaki komut bash script’inin konumunu görüntüleyecektir.
which bash
Bu komutun sonucu bu olacaktır:
/bin/bash
En sık görülen bash söz dizimi ise:
fonksiyon fonksiyonAdi { ilk komut ikinci komut }
Bu ayrıca bu şekilde de yazılabilir:
fonksiyonAdi (){ ilk komut ikinci komut }
Tek bir satırdaysa bu halde olacaktır:
fonksiyonAdi() { ilk komut; ikinci komut; } caca
Bu türden bir fonksiyonun örneği ise aşağıdaki gibidir. Bu komutta önce bir dizin oluşturulur ve daha sonra ise konum yeni dizinle değiştirilir:
ornekFonksiyon () { mkdir -p $1 cd $1 }
$1 komut satırı bağımsız giriş değişkenlerini temsil eder. Bash komut içinde dinamik girişler yaratabilir. Bu fonksiyonu doğrulamak için çalıştırmanız gereken komutsa bu olacaktır:
ornekFonksiyon Dizin
Burada Dizin oluşturulacak olan geçerli bir dizin adıdır. Eğer mevcut çalışan dizini pwd komutunu kullanarak kontrol ederseniz yeni oluşturulan Dizin adlı dizinde çalıştığınızı göreceksiniz.
Benzer olarak sıkça kullanılan herhangi bir komut bir bash fonksiyonu olarak eklenebilir.
Unutmayın, VIM Editor ile .sh dosyanızı düzenlemeyi bitirdiğinizde ESC tuşuna basarak komut moduna girebilir ve :wq yazarak kaydedip çıkabilirsiniz.
Bash Script Örnekleri
Bash fonksiyonunun en temel örneklerinden biri aşağıdaki gibidir:
#!/bin/bash testfunction(){ echo "Ilk fonksiyonum" } testfunction
Eğer bu scripti testFunction.sh olarak kaydeder ve ./testFunction.sh olarak çalıştırırsanız sonucu aşağıdaki olarak görebilirsiniz:
Ilk fonksiyonum
Echo sonucu konsolda gösterir. Eğer fonksiyon tanımının yerini çağrıyla değiştirirseniz hata oluşacaktır. Aşağıdaki script size hata verecektir:
#!/bin/bash testfunction testfunction(){ echo "My Ilk fonksiyonum" }
Bu yüzden ilk önce fonksiyonu tanımlamanız ve daha sonraysa çalıştırmanız gerekmektedir.
Bash fonksiyonu herhangi bir sayıda parametre kabul edebilir. Aşağıdaki örnek iki parametreyi kabul edecektir:
#!/bin/bash testfunction(){ echo $1 echo $2 }
testfunction "Merhaba" "Dünya"
Ayrıca aşağıdaki interaktif girişi kullanabilir ve bash fonksiyonlarını gerçekleştirebilirsiniz. Bunun bir örneği aşağıdaki gibidir:
#!/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ıdaki örnekteki 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 kullanarak elde edilir. Son olarak sonuçsa $? kullanılarak verilir. $?, fonksiyondan dönüş değerini $sum depolar.
Bash fonksiyonları daima tek bir değer verir.
Dosya içinde # sembolünü ekleyerek not bırakabilirsiniz.
Bash scriptleri aşağıdakileri desteklemektedir:
- While döngüsü
- For döngüsü
- If ifadesi
- Ve mantığı
- Veya mantığı
- Else If ifadesi
- Case ifadesi
İşte While döngüsünün kısa bir örneği
#!/bin/bash isvalid=true count=1 while [ $isvalid ] do echo $count if [ $count -eq 5 ]; then break fi ((count++)) done
Yukarıdaki örnek while ve if ifadelerini kullanır. Bu örnekte if koşul ifadesi kontrol edilip çıkış yapılmadan önce loop döngüsünü 5 defa çalıştırır.
Sonuç böyle olacaktır:
1 2 3 4 5
For döngüsü sayaçları hem artırmak, hem de azaltmak için kullanılabilir. Bu türden bir for döngüsünün örneği ise aşağıdaki gibidir:
#!/bin/bash for (( count=10; count>0; count-- )) do echo -n "$count " done
Bu for döngüsünün sonucu böyle olacaktır:
10 9 8 7 6 5 4 3 2 1
Bash’de && mantıksal VE’yi temsil ederken || mantıksal VEYA’yı temsil etmektedir.
If ifadeleriyle ayrıca Else if‘i tanımlayabilirsiniz. Bunun bir örneği aşağıdaki gibidir:
#!/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ğıdaki gibi yazılabilir:
#!/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 ;; case aralarını temsil eder.
Sonuç
Böylece bu rehberimizin de sonuna geldik. Bash gerçekten güçlü bir araçtır ve kolaylıkla öğrenebilir. Bu rehberden öğrendiklerinizin üstüne koymak için daha fazla Bash script örneği oluşturabilir ve Bash fonksiyonlarının farklı kullanımlarını keşfedebilirsiniz. Düşüncelerinizi ve yorumlarınızı aşağıdaki yorumlar kısmında bizimle paylaşmayı unutmayın! İyi şanslar!
Yorumlar
Yorum Gönder