Wie sich verschiedene Shell-Skripte auf unterschiedliche Betriebssysteme abbilden lassen

Wie sich verschiedene Shell-Skripte auf unterschiedliche Betriebssysteme abbilden lassen

Sie sind neu bei Linux und haben ein paar Fragen zu Shell-Skripten:

  • Hülse
  • C-Shell
  • Bash-Shell
  • Bourne-Shell
  • Kornschale

So viele „Shells“! Wie kann ich in diesem Zusammenhang feststellen, für welche Interpreter mein Linux-System konfiguriert ist? Wenn ich beispielsweise keine Unterstützung für habe, kornwie konfiguriere ich dann mein System, damit es diese unterstützt?

Und welche dieser Shells ist am „aktivsten“ (wird am häufigsten aktualisiert und gewartet)?

Dank im Voraus!

Antwort1

Das von Ihnen angesprochene Problem ist der eigentliche Grund, warum wir den Begriff haben vonPOSIX-kompatible Shellsund die Möglichkeit, „portablen“ Code zu erstellen. Solange Sie die in diesem Link beschriebene POSIX-konforme Syntax einhalten, können Sie sicher sein, dass Ihr Code portierbar ist.

Wenn Ihre Zielgruppe allerdings nur Linux ist, ist jede mir bekannte Linux-Distribution mit basheiner Standard-Shell ausgestattet. Sie können also ziemlich sicher sein, dass ein Bash 3.x-kompatibles Skript auf praktisch jeder Linux-Distribution funktioniert.

Antwort2

Das erste UNIX gab es bei AT&T. Die erste Shell war die Bourne-Shell. Sie war sehr cool, hatte aber einige ernsthafte Einschränkungen.

Als die Jungs vonBerkeleybegann, mit UNIX zu spielen und es zu verbessern, und kam mit der C-Shell heraus. Sie hatte eine andere Programmiersprache (obwohl auch auf seine Weise fehlerhaft), war aber viel besser für den interaktiven Einsatz geeignet. Aufgrund seiner Vorteile im interaktiven Einsatz wurde es in allen UNIX-Versionen, die von Berkeley UNIX abstammten, sehr beliebt.

C-Shell (oder csh) hat einen Open-Source-Klon namens tcsh hervorgebracht. Wenn Sie csh verwenden, verwenden Sie wahrscheinlich nicht „echtes“ oder ursprüngliches csh, sondern tcsh.

In der Zwischenzeit haben die UNIX-Leute nicht untätig herumgesessen. Dave Korn (netter Kerl) hat eine neue Shell namens ... Korn Shell erstellt. Sie folgte dem Programmiermodell der Bourne Shell (das dem csh-Modell wohl überlegen war). Sie wurde sehr populär und für viele Leute zur alltäglichen Shell. Sie wurde auch Teil der UNIX-Spezifikation. Daraus entstand ein recht populärer Open-Source-Klon namens pdksh, der ziemlich nahe (wenn auch nicht 100%) kompatibel ist. Schließlich veröffentlichte AT&T den Code als Open Source.

Die GNU-Leute wollten ihr eigenes UNIX-ähnliches System erstellen, also brauchten sie eine Shell, die sie einbinden konnten, ohne sich um Lizenzprobleme sorgen zu müssen. Sie erstellten Bash, die Bourne Again Shell. Sie ist größtenteils mit dem ursprünglichen Bourne kompatibel und übernimmt Ideen von Csh und Ksh. Sie wurde sowohl wegen ihrer Benutzerfreundlichkeit als auch weil sie mit jedem Linux mitgeliefert wurde, beliebt. Es gab mehrere Versionen, Version 2 ist die erste sehr brauchbare und jetzt liegt Version 4 mit neuen Funktionen vor.

Dann kam zsh. Auch dieses Programm folgte der Syntax der Bourne-Shell und kopierte, was in der Bourne-Shell, in ksh, csh und bash gut war. Es verfügt wohl über die fortschrittlichste Syntax mit Funktionen, die in anderen Shells nicht zu finden sind.

Kurz zusammengefasstWas soll man also verwenden? Wenn Sie ein Startskript codieren, sollten Sie /bin/sh verwenden, das POSIX/Original Bourne-kompatibel ist. Die Sprache ist spärlich, läuft aber, selbst wenn Festplatten wie /usr nicht verfügbar sind.

Wenn es sich nicht um Startskripte handelt, haben Sie etwas mehr Auswahl. Wenn Sie nur an Ihrem Computer arbeiten, verwenden Sie alles, was derzeit verfügbar ist. Sie steuern Ihren Computer. Wenn Sie schreiben, um es an andere weiterzugeben, würde ich /bin/sh oder bash verwenden. /bin/sh ist zwar einfach, aber immer verfügbar. bash ist Open Source, also fast immer verfügbar, alt genug, um überall zu sein, aber neu genug, um einige neue Funktionen zu haben. Csh ist nicht überall verfügbar und zsh auch nicht.

verwandte Informationen