Bash betikleri, görevleri otomatikleştirmek için kullanışlıdır ve basit komut satırı uygulamaları oluşturmak için harika olduklarını göreceksiniz. Bash kabuğu, Bash betiklerini yorumlar, dolayısıyla bunları yazmak ve çalıştırmak için herhangi bir bağımlılık kurmanız gerekmez. Çoğu Unix tabanlı işletim sistemi aynı kabuk yorumlayıcısını kullandığından Bash betikleri de taşınabilirdir.
Bash komut dosyası oluşturma bilgisi, özellikle Unix tabanlı sistemlerle çalışıyorsanız, her geliştirici için bir zorunluluktur.
Bash’teki değişkenler
Bash değişkenleri büyük/küçük harfe duyarlıdır. Değişkenleri bildirmek için , adı solda ve değeri sağda olacak şekilde bir eşittir işareti (=) kullanın:
STATE=Washingtonn
Bu bildirimin DEVLET’e atadığı değer tek bir kelimedir. Değerinizde boşluklara ihtiyacınız varsa, çevresinde tırnak işaretleri kullanın:
STATE=”North Arizona”n
Diğer değişkenler veya ifadelerdeki değişkenlere başvurmak için dolar işareti ($) öneki kullanmanız gerekir:
STATE=WashingtonnLOCATION=”My Location is $STATE”n
Bash’te Değerleri Yazdırma
Bash’te değişkenleri yazdırmanın birkaç yolu vardır. Temel çıktı için echo komutunu veya dize formatlaması için C stili printf komutunu kullanabilirsiniz .
STATE=WashingtonnLOCATION=”My Location is $STATE”necho $LOCATIONn
STATE değişkenini bildirdikten sonra bu komut dosyası, STATE’e atıfta bulunarak LOCATION’ı tanımlar. If, LOCATION değişkeninin son değerini yazdırmak için yankıyı kullanır.
başvurulan bir değişkeni yazdırmanın sonucu
printf anahtar sözcüğü , veri çıktısı almak için biçimlendirme fiillerini kullanmanıza izin verir. Dize biçimlendirme fiilleri, C ve Go’dakilere benzer, ancak sınırlı fiillerle.
Fiil işlevsellik
%c tek karakterleri yazdırır
%Ö sekizli basar
%s büyük/küçük harften bağımsız olarak dizeleri yazdırır
%x küçük onaltılık yazdırır
%X büyük onaltılık yazdırır
%d tamsayıları yazdırır
% e bilimsel kavramı yüzen küçük harflerle yazdırır
%E bilimsel kavramı yüzen büyük harflerle yazdırır
%f kayan noktalı sayıları yazdırır
%% tek bir yüzde simgesi yazdırır.
Print anahtar kelimesiyle bir fiil kullanmanın bir örneğini burada bulabilirsiniz .
STATE=Lagosnprintf “My Location is %s” $STATEn
printf işlevi, %s fiilinin konumunda DEVLET değişkenini değiştirir ve çıktı ” Konumum Lagos” olur.
Bash’teki yorumlar
Bash’te hash veya kare ( # ) simgesiyle yorum yapabilirsiniz. Kabuk, yorumları otomatik olarak yok sayar.
#!/bin/bashn# STATE=Washingtonn# LOCATION=”My Location is $STATE”n
Çok satırlı yorum yok. Çoğu IDE ve metin düzenleyici, Ctrl/Command + eğik çizgi(/) kısayoluyla yorum yapmanıza izin verir. Birden çok tek satırlık yorum oluşturmak için kısayolu kullanabilmeniz gerekir.
Bash’te Kullanıcı Girişi Alma
Diğer birçok programlama dilinde olduğu gibi, programlarınızı/komut dosyalarınızı daha etkileşimli hale getirmek için Bash’te kullanıcı girişi alabilirsiniz. Kullanıcının girdisini istemek için read komutunu kullanabilirsiniz .
read responsen
Bu durumda, yanıt değişkeni kullanıcının girişini teslimatta tutacaktır.
echo “What do you want ?: “nread responsenecho $responsen
Kullanıcı girişi isteği, yukarıdaki örnekte yeni bir satırda olacaktır.
-n bayrağı olmadan kullanıcı girişi almanın sonucu
Kullanıcının giriş yaptığı satırı korumak için -n işaretini echo print ifadesine ekleyebilirsiniz .
echo -n “What do you want.”nread responsenecho $responsen
-n bayrağıyla kullanıcı girişi almanın sonucu
Bash’te Dizi Bildirmek
Bash’teki diziler tıpkı çoğu dil gibidir. Öğeleri parantez içinde belirterek Bash’te bir dizi değişkeni bildirebilirsiniz.
Countries=(‘USA’ ‘Russia’ ‘Ukraine’, “England”, “Taiwan”, “China”)n
Bir diziye değişken adına referansla erişmek, ilk elemanı getirir. İndeks olarak yıldız işaretini kullanarak tüm diziye erişebilirsiniz.
echo ${Countries[*]}n
Belirli bir öğeye erişmek için dizinin dizinini de belirleyebilirsiniz. Bir dizinin indeksi sıfırdan başlar.
echo “${Countries[4]}”n
Bash’te Koşullu İfadeler
Bash, programlarda karar verme için koşullar sağlar.
İşte Bash’teki bir if-else ifadesinin anatomisi. Koşulun sonunu belirtmek için noktalı virgülü kullanmanız gerekecek.
if [[ condition ]]; thenn echo statement1nelif [[condition ]]; thenn echo statement2nelse [[condition ]]; thenn echo statement3nfin
Her if deyimini fi anahtar sözcüğüyle bitirmelisiniz.
if [ 1 == 2 ]; thenn echo one nelif [ 2 == 3 ]; then #else-ifn echo twonelse [ 4 > 3 ]; n echo “correct, 3″nfin
Bash programlarınızda case anahtar sözcüğünü kullanarak case deyimlerini kullanabilirsiniz . Açıklamadan önce kalıbı ve ardından bitiş parantezlerini belirtmeniz gerekir.
CITY=Lagosncase $CITY inn “Washington”) # pattern n echo “United States of America” # statementn ;; # end of a casen “Lagos” | “Abuja”)n echo “Nigeria”n ;;n “Johannesburg” | “Cape Town”)n echo “South Africa”n ;;n *) # default patternn echo “Antarctica” # default statementn ;;nesac # end of the case statementn
Model olarak yıldız (*) işaretini kullanarak varsayılan durumu tanımlayabilirsiniz. Case ifadeleri esac anahtar sözcüğü ile bitmelidir .
Bash’teki döngüler
İhtiyaçlarınıza bağlı olarak, yinelenen işlemler için bir while döngüsü, range for döngüsü veya bir C stili for döngüsü kullanabilirsiniz .
İşte C stili for döngüsüne bir örnek. For döngüleri done anahtar sözcüğüyle bitmeli ve for ifadesini noktalı virgül ve ardından do anahtar sözcüğüyle bitirmelisiniz.
for ((a = 0 ; a < 10 ; a+2)); don echo $andonen
Döngü aralığı, dosyalarla ve diğer birçok işlemle çalışmak için kullanışlıdır. for-loop aralığı ile in anahtar sözcüğünü kullanmanız gerekir .
for i in {1..7}; don echo $1ndonen
İşte döngüler çalışırken Bash’i göstermek için basit bir sonsuz döngü .
name=1nwhile [ 1 -le 5 ] # while 1 < 5ndon echo $namendonen
Koşul ifadesindeki -le , küçüktür için ikili işleçtir.
Bash’teki işlevler
Bash’te işlevleri bildirmek için anahtar sözcüklere ihtiyacınız yoktur. İşlevleri adla ve ardından işlevin gövdesinden önce parantezlerle bildirebilirsiniz.
print_working_directory() {n echo $PWD #calling the PWD command from the scriptn}necho “You are in $(print_working_directory)”n
İşlevler, Bash’te değişkenler döndürebilir. Tek ihtiyacınız olan, dönüş anahtar sözcüğüdür.
print_working_directory() {n return $PWDn}n
print_working_directory işlevi, dosyanın çalışma dizinini döndürür .
Diğer Dillerde Kabuk Komut Dosyaları Yazabilirsiniz
Bash, işletim sisteminizin kabuğuyla etkileşimde bulunmak veya komut satırı uygulamaları oluşturmak için kullanabileceğiniz tek dil değildir. Go, Python, Ruby ve Rust gibi diğer birçok dili kullanabilirsiniz.
Birçok işletim sisteminde Python3 önceden yüklenmiştir ve Python yaygın bir dildir. Bash betiklerinin sunabileceğinden daha fazla işlevselliğe ihtiyacınız varsa, Python kullanmayı düşünün.