Bash komut dosyaları, 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 komut dosyalarını yorumlar, bu nedenle bunları yazmak ve çalıştırmak için herhangi bir bağımlılık yüklemeniz gerekmez. Bash betikleri de taşınabilirdir çünkü çoğu Unix tabanlı işletim sistemi aynı kabuk yorumlayıcısını kullanır.
Bash komut dosyası bilgisi, özellikle Unix tabanlı sistemlerle çalışıyorsanız, her geliştirici için bir zorunluluktur.
Bash'deki Değişkenler
Bash değişkenleri büyük/küçük harfe duyarlıdır. Değişkenleri bildirmek için eşittir işareti kullanın (=) soldaki ad ve sağdaki değer ile:
DEVLET=Washington
Bu bildirimin atadığı değer DURUM tek kelimedir. Değerinizde boşluklara ihtiyacınız varsa, etrafındaki tırnak işaretlerini kullanın:
STATE="Kuzey Arizona"
Dolar işareti kullanmanız gerekecek ($) diğer değişkenlerde veya ifadelerde değişkenlere referans vermek için önek:
DEVLET=Washington
LOCATION="Konumum $STATE"
Bash'de Değerleri Yazdırma
Bash'de değişkenleri yazdırmanın birkaç yolu vardır. kullanabilirsiniz Eko temel çıktı veya C stili için komut baskı dize biçimlendirme komutu.
DEVLET=Washington
LOCATION="Konumum $STATE"
Eko$LOCATION
ilan ettikten sonra DURUM değişken, bu komut dosyası tanımlar YER STATE'e atıfta bulunarak. Ardından, LOCATION değişkeninin son değerini yazdırmak için yankı kullanır.
bu baskı anahtar kelime, 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ı fiiller içerir.
Fiil | işlevsellik |
---|---|
%c | tek karakterleri yazdırır |
%Ö | Sekizli basamakları yazdırır |
%s | gövdeden bağımsız olarak dizeleri yazdırır |
%x | küçük harfli onaltılık yazdırır |
%X | büyük harfli onaltılık yazdırır |
%d | tamsayıları yazdırır |
%e | bilimsel kavramı küçük harflerle yazdırır |
%E | bilimsel kavramı büyük harfle yazdırır |
%f | kayan noktalı sayıları yazdırır |
%% | tek bir yüzde sembolü yazdırır. |
İşte fiil ile bir fiil kullanmanın bir örneği Yazdır anahtar kelime.
DEVLET=Lagos
baskı "Konumum %s" $STATE
bu baskı fonksiyonun yerini alacak DURUM konumunda değişken %s fiil ve çıktı “Konumum Lagos” olacaktır.
Bash'de hash veya pound ile yorum yapabilirsiniz (#) sembolü. Kabuk, yorumları otomatik olarak yok sayar.
#!/bin/bash
# DEVLET=Washington
# LOCATION="Konumum $STATE"
Ç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ı yorum oluşturmak için kısayolu kullanabilmelisiniz.
Bash'de Kullanıcı Girişi Alma
Diğer birçok programlama dili gibi, programlarınızı/komut dosyalarınızı daha etkileşimli hale getirmek için Bash'de kullanıcı girdisi alabilirsiniz. kullanabilirsiniz okuman Kullanıcının girişini istemek için komut.
okuman tepki
Bu durumda, tepki değişken, teslimatta kullanıcının girişini tutacaktır.
echo "Ne istiyorsun?: "
yanıtı oku
yankı $yanıt
Kullanıcı girişi isteği, yukarıdaki örnekte yeni bir satırda olacaktır.
ekleyebilirsiniz -n bayrak Eko kullanıcının girdi girdiği satırı korumak için print deyimi.
echo -n "Ne istiyorsun?"
yanıtı oku
yankı $yanıt
Bash'de Dizi Bildirmek
Bash'deki diziler çoğu dil gibidir. Öğeleri parantez içinde belirterek Bash'de bir dizi değişkeni bildirebilirsiniz.
Ülkeler=('ABD' 'Rusya' 'Ukrayna', "İngiltere", "Tayvan", "Çin")
Bir diziye değişken adına başvuru yoluyla erişmek, ilk öğeyi getirir. Dizin olarak yıldız işaretini kullanarak dizinin tamamına erişebilirsiniz.
echo ${Ülkeler[*]}
Belirli bir öğeye erişmek için dizinin dizinini de belirtebilirsiniz. Bir dizinin dizini sıfırdan başlar.
Eko "${Ülkeler[4]}"
Bash'de Koşullu İfadeler
Bash, programlarda karar verme için koşullar sağlar.
İşte Bash'deki if-else ifadesinin anatomisi. Koşulun sonunu belirtmek için noktalı virgül kullanmanız gerekir.
eğer [[ şart ]]; sonra
Eko ifade1
elif [[şart ]]; sonra
Eko ifade2
başka [[şart ]]; sonra
Eko ifade3
fi
her şeyi bitirmelisin eğer ile ifade fi anahtar kelime.
eğer [ 1 == 2 ]; sonra
Eko bir
elif [ 2 == 3 ]; sonra#else-if
Eko iki
başka [ 4 > 3 ];
Eko "doğru, 3"
fi
Bash programlarınızda case ifadelerini kullanabilirsiniz. dava anahtar kelime. İfadeden önce parantez ile biten kalıbı belirtmeniz gerekir.
ŞEHİR=Lagos
dava$ŞEHİRiçinde
"Washington") # model
Eko "Amerika Birleşik Devletleri" # Beyan
;; # davanın sonu
"Lagos" | "Abuja")
Eko "Nijerya"
;;
"Johannesburg" | "Cape Town")
Eko "Güney Afrika"
;;
*) # varsayılan desen
Eko "Antarktika" # varsayılan ifade
;;
esac# vaka ifadesinin sonu
Desen olarak yıldız (*) işaretini kullanarak varsayılan durumu tanımlayabilirsiniz. Vaka ifadeleri ile bitmelidir esac anahtar kelime.
Bash'de Döngüler
İhtiyaçlarınıza bağlı olarak, bir süre döngüsü, döngü için aralık veya bir C stili kullanabilirsiniz. yinelenen işlemler için döngü.
İşte döngü için C stilinin bir örneği. For-döngüleri ile bitmelidir tamamlamak anahtar kelime ve for ifadesini noktalı virgül ve ardından yapmak anahtar kelime.
için ((a = 0; bir < 10; a+2)); yapmak
Eko$a
tamamlamak
Döngü aralığı, dosyalarla ve diğer birçok işlemle çalışmak için kullanışlıdır. kullanmanız gerekecek içinde döngü aralığına sahip anahtar kelime.
için i içinde {1..7}; yapmak
Eko$1
tamamlamak
Bash'i göstermek için basit bir sonsuz döngü süre döngüler eylemde.
isim=1
süre [ 1 -le 5 ] # iken 1 < 5
yapmak
Eko$isim
tamamlamak
bu -le koşul ifadesinde, daha az için ikili operatördür.
Bash'deki İşlevler
Bash'de işlevleri bildirmek için anahtar kelimelere ihtiyacınız yoktur. İşlevleri, işlevin gövdesinden önce adla ve ardından parantezlerle bildirebilirsiniz.
print_working_directory() {
Eko$ özürlü#komut dosyasından PWD komutunu çağırma
}
Eko "Sen içinde $(print_working_dizini)"
Fonksiyonlar Bash'de değişkenleri döndürebilir. Tek ihtiyacın olan dönüş anahtar kelime.
print_working_directory() {
dönüş$ özürlü
}
bu print_working_directory işlev, dosyanın çalışma dizinini döndürür.
Shell Komut Dosyalarını Diğer Dillerde Yazabilirsiniz
Bash, işletim sisteminizin kabuğuyla etkileşim kurmak 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.