GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum verwendet niemand die True Bourne Shell als /bin/sh?

Mir ist aufgefallen, dass im Grunde kein System, mit dem ich jemals gearbeitet habe, /bin/sh hat als echte ausführbare Datei. Es ist immer ein symbolischer Link zu dash , bash im POSIX-Modus oder so ähnlich.

Wieso den? Was sind die Nachteile der Verwendung des echten, originalen /bin/sh ? (Geschwindigkeit? Lizenzierung?)

Akzeptierte Antwort:

Ich würde auf fehlende Funktionen tippen – kein Befehlsverlauf, keine ausgefallene Umleitung, keine Befehlszeilenbearbeitung. BSD führte csh ein die C-Shell aus diesen Gründen. Ein weiterer Faktor ist, dass die Genuine Bourne Shell erst seit kurzem in Open-Source-Form verfügbar ist. Wenn Sie es nicht lizenziert haben, können Sie es nicht verteilen. Das machte es für kostenlose Distributionen unerreichbar und machte es für andere Distributionen und *BSDs ideologisch ungenießbar.

Aber der Code ist jetzt verfügbar. Sie können es sich ansehen, kompilieren und ausprobieren.


Linux
  1. Warum ist es besser, „#!/usr/bin/env Name“ statt „#!/path/to/name“ als Shebang zu verwenden?

  2. Was ist der Unterschied zwischen /sbin/nologin und /bin/false?

  3. Ist es richtig, /bin/sh im Hashbang zu verwenden, wenn die Bourne-Shell in einer Distribution nicht verfügbar ist?

  4. Warum zeigt /bin/sh auf /bin/dash und nicht auf /bin/bash?

  5. Was ist der Unterschied zwischen #!/usr/bin/env bash und #!/usr/bin/bash?

Was macht die Zeile '!/bin/sh -e'?

Installieren Sie Binärdateien in /bin, /sbin, /usr/bin und /usr/sbin, Interaktionen mit --prefix und DESTDIR

Warum müssen Sie #!/bin/bash an den Anfang einer Skriptdatei setzen?

Unterschied zwischen /bin und /usr/bin

Warum sind wahr und falsch so groß?

#!/bin/sh vs. #!/bin/bash für maximale Portabilität