Temel olarak, bir kabuğun giriş yapıp yapmaması, etkileşimli olup olmaması tam bir nedenden dolayı önemlidir:
İlklendirme dosyaları ve varsayılan seçenekler, bir kabuğun oturum açıp açmamasına ve etkileşimli olup olmamasına bağlıdır.
Buna bağlı olarak, bir kabuğun oturum açıp açmadığı ya da etkileşimli olup olmadığı ya da yalnızca kullanılan istilaya bağlı olmadığına - tam komut adı ve seçenekleri.
İki özellik aksi takdirde ortogonaldir - bir kabuğun oturum açıp açmadığı veya etkileşimli olup olmadığını belirleme üzerinde hiçbir etkisi yoktur.
Bunlardan herhangi biri doğruysa, Bash bir giriş kabuğu başlatır:
argv[0]
, çağrıldığı komutun adı, ile başlar. -
-l
seçeneği belirtilmişse
Benzer şekilde bash, bunlardan herhangi biri doğruysa etkileşimli bir kabuk başlatır:
- çalıştırılacak bir dosya (yani komut değildi
bash some/file
) veya çalıştırılacak bir komut dizesi ( bash -c 'foo'
) belirtilmedi (gerçek koşul biraz daha karmaşık, kılavuza bakın)
-i
seçeneği belirtildi
Özellikle (ve paradoksal olarak), ikincisi bash -ic 'foo'
etkileşimli bir kabuk başlatan anlamına gelir .
Dolayısıyla aşağıdakiler bir giriş ve etkileşimli kabuk başlatır, bununla ilgili hiçbir etkileşimi olmasa da ve girişin giriş yapmakla hiçbir ilgisi yoktur:
bash -lic true
Konsoldan veya GUI üzerinden giriş yapmanın bir giriş kabuğu başlatması (veya belki değil), tamamen uygun girişimin kullanıldığı giriş işleminin bir etkisidir.
Koşullar ve efektler , bash el kitabında Başlangıç Dosyaları ile ilgili bölümde ayrıntılı olarak açıklanmaktadır .
Başlıca karışıklık kaynağı, "giriş" kabuğunun ortak bir anlamı olduğu:
Bir kullanıcının giriş kabuğu, bu kullanıcının passwd
girişinde tanımlanan kabuktur ( /etc/passwd
LDAP veya başka bir kaynaktan gelebilir ).
login
Program, SSH, vb olarak bu kabuk başlatmak giriş cevabın kalanında anlamına anlamda kabuk - lider ile -
komut adına genellikle. Özellikle kafa karıştırıcı olmak istiyorsanız, şunu söyleyebilirsiniz:
Bazı giriş işlemleri, kullanıcının giriş kabuğunu bir giriş kabuğu olarak başlatır.
GUI giriş bilgilerinin tamamen bir giriş kabuğu başlattığını unutmayın, çünkü geliştiriciler uygun olduğunu düşünüyor - LightDM, girişlerde kesinlikle etkileşimli olmayan ve kesinlikle kullanıcının giriş kabuğuna (ikinci anlamda) bağlı olmayan bir komut dosyası çalıştırıyor. Bir giriş kabuğu başlatan ekran yöneticisine bağlı olmamaya rağmen - hepsi değil ve Wayland ve GNOME'da, giriş işlemi hiç kabuk komut dosyası kullanmaz.
non-interactive login shell
yanlış.