Die Bourne - Shell ( sh wieder in den Tag) der AT & T - Zweig von Unix wurde verbessert auf und von der Korn - Shell, superceded KSH . ksh stammt ebenfalls von AT & T Bell Labs und war keine GPL (aktuelle Version ist Eclipse Public License). Die C-Shell csh stammt aus der Berkeley-Version von Unix und war auch keine GPL (BSD-Lizenz) und verwendete auch eine andere Syntax als sh. Die Z-Shell, zsh, ist eine Verbesserung gegenüber sh, jedoch keine GPL (MIT-ähnliche Lizenz). Bash war eine Verbesserung von sh, verwendete die GPL und von GNU. Nur auf Lizenz allein wäre Bash wahrscheinlich die Wahl für ein GPL-Betriebssystem gewesen. Vor allem, wenn eine Muschel ein Kernstück einer Distribution ist.
Bash war aber auch ein GNU-Projekt, da es meiner Meinung nach aktiver entwickelt und Beiträge einfacher macht als ein Legacy-Produkt aus Berkeley Unix oder AT & T Unix. Ein sehr guter Fall könnte sein, dass zsh eine bessere Shell ist und war als Bash, aber nicht genug, um den unterschiedlichen Lizenz- und Nicht-GNU-Projektstatus zu überwinden.
Als Linux-Distributionen zum ersten Mal auftauchten und ihre Standard-Shell auswählten (Anfang bis Mitte der 90er Jahre), gab es weder einen Github (2008) noch eine SourceForge (1999). Zu diesem Zeitpunkt hatten GNU-Projekte meines Erachtens einen echten Vorteil gegenüber Nicht-GNU-Projekten, da sie wahrgenommen und gezeichnet wurden und neue Entwickler mit einbezogen wurden. Daher könnten Distributionen Z-Shell als besser ansehen, aber auch damit rechnen, dass Bash in Zukunft einen guten Support und eine gute Wartung erhält und dass weitere Funktionen hinzugefügt werden, die es ihm ermöglichen, zsh nachzuholen.
Jetzt, da Bash jahrelang den Standardstatus hatte, ist es zu einem Standard geworden, über den Bücher geschrieben wurden. Es gibt ein Buch, das sowohl Bash als auch Z-Shell behandelt , aber kein Buch, das es ausschließlich behandelt, während es mehrere gibt, die dies für Bash tun.
Und zu diesem Zeitpunkt, wenn Distributionen die Standardeinstellungen für Upgrades eines vorhandenen Systems ändern würden, würden Setups unterbrochen, da einige der Initialisierungsdateien unterschiedliche Namen haben (z. B. .bashrc versus .zshrc) und der Inhalt der Dateien möglicherweise eine inkompatible Syntax aufweist. Daher würden sie dies nur sehr ungern tun und neue Downloads mit zsh als Standard und Upgrades mit bash belassen. Zwei verschiedene Standardeinstellungen für dieselbe Distribution möchten sie wahrscheinlich nicht unterstützen, und Benutzer / Unternehmen möchten sich auch nicht damit befassen.
ksh
, dann ist es auch so, dass die meisten Leute eine andere Shell verwenden, und dies allein würde erklären, warumksh
nicht die Standard-Shell ist. Ich glaube jedoch nicht, dass dies der Grund ist. Warten wir auf eine Killer-Antwort, von der ich sicher bin, dass sie diese Frage erhalten wird.