-
Bir etkileşimli giriş kabuğu olarak veya --login
seçeneği ile çağrıldığında
Bash bir etkileşimli giriş kabuğu olarak veya --login
seçeneği ile bir etkileşimsiz kabuk olarak çağrıldığında,
/etc/profile dosyası varsa dosyayı okur ve
komutlarını çalıştırır. Bu dosya okunduktan sonra sırayla
~/.bash_profile,
~/.bash_login, ve
~/.profile dosyalarının varlığına bakar,
var ve okunabilir olanlarını okur ve komutlarını çalıştırır.
--noprofile seçeneği ile başlatarak Bash'in
bu davranışı engellenebilir.
Bir giriş kabuğu çıkarken, ~/.bash_logout
dosyasına bakar, varsa ve okunabilirse dosyayı okur ve komutlarını
çalıştırır.
-
Etkileşimli ancak giriş kabuğu olmayan bir kabuk olarak çağrıldığında
Giriş kabuğu olmayan bir etkileşimli kabuk başlatıldığında
Bash, varsa ~/.bashrc dosyasını okur ve
komutlarını çalıştırır. Bu işlem --norc
seçeneği ile engellenebilir. --rcfile
dosyaismi seçeneği ile
~/.bashrc dosyası yerine
dosyaismi dosyasının okunması ve
komutlarının çalıştırılması sağlanabilir.
Öyleyse, her girişe özel ilklendirme sonrası (ya da öncesi) için
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
satırı ~/.bash_profile dosyanızda bulunmalıdır.
- Etkileşimsiz olarak çağrıldığında
Bash, örneğin bir betiği çalıştırmak için etkileşimsiz olarak
başlatıldığında, ortamdaki BASH_ENV değişkenine
bakar, varsa değerini okunup çalıştırılacak bir dosya ismi olarak
yorumlar. Bash burada,
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
satırı çalıştırılmış gibi davranır, ancak PATH
değişkeninin değeri dosyayı aramak için kullanılmaz.
Yukarıda da bahsedildiği gibi, --login
seçeneği ile başlatılan bir etkileşimsiz kabuk, komutları giriş
kabuğunun başlatma dosyalarından okuyup çalıştırmaya uğraşır.
- sh ismiyle çağrıldığında
Bash, sh ismiyle çağrılırsa,
sh'ın tarihsel sürümlerinin başlatma
davranışlarını POSIX standardına da uydurmaya çalışarak
mümkün olduğunca taklit etmeyi dener.
Bir etkileşimli giriş kabuğu olarak veya --login
seçeneği ile bir etkileşimsiz kabuk olarak çağrıldığında, komutları önce
/etc/profile dosyasından okumayı ve
çalıştırmayı dener ve sırasıyla
~/.bash_profile,
~/.bash_login, ve
~/.profile dosyalarının varlığına bakar,
var ve okunabilir olanlarını okur ve komutlarını çalıştırır.
--noprofile seçeneği ile başlatarak bu davranış
engellenebilir. Bir etkileşimli kabuk olarak sh
ismiyle çağrıldığında Bash, ortamdaki ENV değişkenine
bakar, varsa değerini okunup çalıştırılacak bir dosya ismi olarak
yorumlar.
sh olarak çağrılan bir kabuk başka
bir başlatma dosyasını okuyup komutlarını çalıştırmayı denemez, zaten
--rcfile seçeneğinin de bir etkisi yoktur.
sh olarak çağrıldığında, Bash başlangıç dosyalarını
okuduktan sonra POSIX kipine girer.
- POSIX kipinde çağrıldığında
Bash --posix komut satırı seçeneği ile POSIX kipinde
başlatıldığında, başlangıç dosyaları için POSIX standardını izler.
Bu kipte etkileşimli kabuklar ENV değişkenini
yorumlayarak bir dosya ismi elde eder ve komutları bu dosyadan okuyup
çalıştırır. Bundan başka başlatma dosyasına bakılmaz.
- Uzaktan erişilebilir kabuk süreci olarak çağrıldığında
Bash rshd gibi bir uzak kabuk süreci tarafından
mı çalıştırılmak istendiğini saptamaya çalışır. Bash,
rshd tarafından çalıştırılmak istendiğini
saptadığında, komutları ~/.bashrc dosyası var ve
okunabilirse oradan okuyup çalıştırır. sh
olarak çağrıldığında bunu yapmaz. --norc seçeneği
bu davranışı engellemekte kullanılabilir ve --rcfile
seçeneği ile başka bir dosyadan komutların okunup çalıştırılması
sağlanabilir, ancak rshd genellikle kabuğu
bu seçeneklerle çağırmaz.
- Farklı Etkin ve Gerçek UID/GID ile çağrıldığında
Bash başlatıldığında etkin kullanıcı (grup) kimliği ile gerçek kullanıcı
(grup) kimliği aynı değilse, hiçbir başlatma dosyası okunmaz, kabuk
işlevleri ortamdan miras alınmaz, ortamda görünse bile
SHELLOPTS değişkeni yoksayılır ve etkin kullanıcı
kimliğine gerçek kullanıcı kimliği atanır. Çağrı sırasında
-p seçeneği verilmişse etkin kullanıcı kimliğinin
gerçek kullanıcı kimliğine ayarlanması dışında başlatma davranışı aynıdır.