Modern UNIX ortamlarında kullanılan çoğu merminin POSIX sh özelliklerine uyması amaçlanmıştır. POSIX sh, daha önceki Bourne kabuğundan türetilen orijinal Korn kabuğundan (ksh88) türetilir, ancak POSIX sh, ksh88 işlevselliğinin yalnızca küçük bir alt kümesini belirtir. Yalnızca asgari gereksinimi uygulayan bir kabukta, en önemsiz senaryolar dışında tümünü güvenli ve makul bir şekilde yazmak için gereken birçok özellik eksik. Örneğin, yerel değişkenler ve diziler standart olmayan ekstralardır.
Bu nedenle, ilk neden mermiyi ekstra özelliklerle genişletmektir. Farklı mermiler farklı şeylere odaklanmayı seçer. Örneğin, Zsh gelişmiş etkileşimli özelliklere odaklanırken, ksh93 (mevcut "orijinal" korn kabuğu) güçlü programlama özelliklerine ve performansına odaklanır. Dash gibi çok küçük mermiler bile yerel değişkenler gibi en az birkaç standart dışı ekstra ekler.
Ekstra özellikler nadiren geniş çapta birlikte çalışabilir. Ksh88 özellik kümesinin çoğu, genişletilmiş globbing sözdizimi gibi oldukça iyi bir şekilde birlikte çalışabilir, ancak standart dışı özelliklerle, hiçbir garanti yoktur ve bunları taşınabilir bir şekilde kullanmak için ne yaptığınızı gerçekten bilmelisiniz.
İkinci neden miras. Hala / bin / sh için eski standart dışı uygulamaları kullanan çok sayıda tescilli Unix var. Yakın zamana kadar Solaris hala Bourne'yi kusurları olarak kullandı ve modern bir şeye yükseltmek yerine Heirloom kabuğunu korumayı seçti. Bu sistemler genellikle, örneğin PATH değişkeninizi değiştirerek veya münferit komut dosyalarındaki shebang'ları değiştirerek değiştirebileceğiniz farklı kabuklarla birlikte gelir.
Özetlemek gerekirse. Çoğunlukla varsayılan olarak birden çok kabuk vardır:
- Ekstra özellikler için, özellikle taşınabilir olmayan ekstralarla uğraşmak için.
- Genellikle korunmayan eski komut dosyalarını işlemek için.
- boyut / performans. Gömülü sistemler genellikle mksh veya busybox sh gibi küçük kabuklar gerektirir.
- Lisanslama nedenleri. AT&T ksh 2000 yılına kadar tescilli bir yazılımdı. Bu büyük ölçüde Zsh ve Bash gibi tüm ksh benzeri klonlara neden oldu.
- Diğer tarihsel nedenler. Bugün çok popüler olmasa da, scsh ve es gibi dili yeniden tasarlama konusunda köklü girişimler oldu. Birçok merminin işlem ikame özelliği başlangıçta rc'den (biraz farklı sözdizimi ile) ve csh'tan brace genişlemesinden gelir. Farklı mermilerin, bu tür özelliklerin farklı kombinasyonları vardır, genellikle bazı ince veya çok ince farklarla.