Bir kabuk betiği kabuk komutlarını içeren bir metin dosyasıdır.
Bash çağrılırken böyle bir dosya seçenek olmayan ilk argüman olarak
verilmişse ve seçenekler arasında
-c ve
-s seçenekleri yoksa (
Bash'in Çağrılması
bölümüne bakın), Bash dosyadan okuduğu komutları çalıştırır ve çıkar.
Bu tür bir işlemde kullanılan kabuk etkileşimsiz kabuktur. Kabuk dosyayı
önce çalıştırıldığı dizinin içinde arar, bulamazsa
$PATH
içindeki dizinlere bakar.
Bash bir kabuk betiğini çalıştırırken, özel parametre 0'ı
kabuğun ismine değil dosya ismine atar ve diğer konumsal parametreler de
varsa argümanlara atanır. Olmayan argümanların konumsal parametreleri
kaldırılır.
Bir kabuk betiği, chmod komutu ile çalıştırma biti
1 yapılarak çalıştırılabilir yapılabilir. Bash betiğin içindeki komutları
$PATH dizinlerinde arar ve bulduğunda bir altkabuk
oluşturup onu orada çalıştırır. Başka bir deyişle, dosyaismi
bir çalıştırılabilir kabuk betiği ise
ile
bash dosyaismi argumanlar
komutları birbirine eşdeğerdir. Bu altkabuk kendi kendini ilklendirir,
yani etkisi, betiği yorumlayan ve komutlarının yerlerini bilen bir
kabuktan onun çocuğu olarak yeni bir kabuk çağırmaya benzer.
(
hash yerleşiği için
Bourne Kabuğu Yerleşikleri bölümüne bakınız.)
Unix'in çoğu sürümleri bunu işletim sisteminin komut çalıştırma
mekanizmasının bir parçası yapar. Eğer bir betiğin ilk satırı
#! çifti ile başlarsa, satırın kalanı
dosya içindeki programın yorumlayıcısıdır. Burada Bash,
awk, perl ya da
betik dosyasının yazıldığı dile ait bir yorumlayıcı belirtebilirsiniz.
Yorumlayıcı için yorumlayıcı satırında yorumlayıcı isminden sonra,
ya da betiği çağırırken betik isminden hemen sonra tek bir seçenek
belirtilebilir, bu son durumda betiğe verilebilecek diğer argümanlar
da ondan sonra verilir. Bash bu eylemi işletim sisteminden birşey
beklemeden yerine getirir.
| Not |
---|
Unix'in bazı eski sürümlerinde yorumlayıcı ismi ve tek
seçeneği için toplam 32 karakterlik bir sınırlama vardır. |
Bash betikleri çoğunlukla #! /bin/bash satırı ile
başlar (Bash'ın /bin içinde bulunduğu varsayımıyla).
Bu satır, betik başka bir kabuk altında çalıştırılsa bile betiğin
Bash tarafından yorumlanmasını sağlar.