Bu kılavuzda Kabuk Programlama’ya (Shell Scripting) giriş yapacağız. Öğrenmeyi hedeflediğimiz temel başlıklar ise şu şekilde;
Linux, Mac veya WSL üzerinde, nasıl dosya oluşturup script yazabilirsiniz?
Nasıl Kabuk (Shell) üzerinde çalıştırılabilir yapabilirsiniz?
Kullanıcıdan alınan değişkeni nasıl kullanabilirsiniz?
Kullanıcı girdi vermediğinde nasıl hazırladığınız hata mesajını bastırabilirsiniz veya varsayılan bir girdi kullanabilirsiniz?
Şimdi konsola geçip deneyerek öğrenelim…
- Dosya Oluşturma
İlk yapmamız gereken şey bir dosya oluşturmak. Bunun için “vi” metin düzenleme editörünü kullanacağız.
vi myscript
Vi Editörde yazı yazmak için “i” tuşuna basarak insert moduna geçiyoruz. Bu moddan çıkmak içinse “esc” tuşuna basabiliriz. Sonrasında kaydetmek ve çıkmak için ise “:wq” yazabiliriz.
Editör açıldığında, script’in ilk satırına “shebang” koymalısınız, shebang “#!” ile ifade edilir. Sonrasına ise yazdığımız komutları nereden alacağını belirtiriz. Bir kaç örnek vermek gerekirse;
- #!/bin/bash
- #!/usr/bin/perl
- #!/usr/bin/python
Bununla ne tarz bir script yazdığımızı belirtmiş oluyoruz.
- Test Etme
Basit bir terminale yazdırma denemesi yapalım:
Sonrasında oluşturduğumuz dosyayı çalıştırılabilir (executable) hale getirmeliyiz. Bunun için dosyanın izinlerini değiştirmeliyiz. Bunu “chmod” komutu ile yapacağız.
chmod +x myscript
Devamında dosyanın içerisinde olduğu dizinde olduğumuz için aşağıdaki şekilde script’i çalıştırabiliriz;
./myscript
Her şeyi doğru yaptığımızda “Merhaba!” çıktısını almamız gerekir ve bu script’imizin çalıştığı anlamına gelir. Yay
- Değişken Ekleme
Tekrar script dosyamızı düzenlemeye geçelim ve değişken aldığımız bir alan ekleyelim. Birine merhaba demek istediğimizi varsayalım ve adını değişken olarak alalım;
ISIM=${1?Error: isim girilmedi}
echo “Merhaba! $ISIM”
Soru işareti koyarak eğer bir değişken verilmezse konsola ne yazdıracağını belirtiyoruz.
Nasıl kullanacağımızı ve farklı senaryolarda nasıl çalışacağını görelim;
Script’in sonuna eklediğimiz ilk kelimeyi ilk değişken olarak aldı. Bu şekilde birden fazla değişken de alabiliriz:
ISIM=${1?Error: isim girilmedi}
ISIM2=${2:-Kubilay}
echo “Merhaba! $ISIM ve $ISIM2”
İkinci değişkenimizde “?” ile eğer bir değişken girilmediğinde ne yazdırması gerektiğini vermek yerine;
“:-” ile varsayılan değişken verelim.
Yine verdiğimiz değişkenlere göre script’imizin çıktılarına bakalım;
Bu yaptıklarımız size temel seviyede bash script yazmanız için iyi bir başlangıç olmuştur. Bir hata bastırmak ve eğer kullanıcı bir değişken vermezse varsayılan bir değer kullanmayı öğrendiğiniz komutlarla kullanarak birbirinden farklı script’ler yazabilirsiniz.