Bash Script Nedir ve Nasıl Kullanılır? Bash Script Örnekleri

 



Bash script, Unix’de mevcut olan en popüler programlama araçlarından biridir. Açılımı Bourne Again Shell‘dir. Bütün Linux kullanıcıları veya Sistem Yöneticileri için güçlü bir araçtır. Bash script nedir öğrendiğinize göre sırada nasıl kullanılacağı var.

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