Bearbeiten von „Wissen/Bourne Shell“

Aus UUGRN

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und speichere dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 21: Zeile 21:
 
* Hauptaugenmerk auf “Command Language” (mit Bedingunge, Schleifen u.v.a.m.).
 
* Hauptaugenmerk auf “Command Language” (mit Bedingunge, Schleifen u.v.a.m.).
 
** Syntax der Sprache inspiriert von ALGOL68.
 
** Syntax der Sprache inspiriert von ALGOL68.
* Außerdem können Shell-Skripte selbst Filter sein (ging bei Thompson Shell nicht).
+
* Außerdem können Shell-Skripten selbst Filter sein (ging bei Thompson Shell nicht).
 
* Seit 1989 quasi quasi unverändert, vergleiche auch: https://en.wikipedia.org/wiki/Bourne_shell#Features_introduced_after_1979
 
* Seit 1989 quasi quasi unverändert, vergleiche auch: https://en.wikipedia.org/wiki/Bourne_shell#Features_introduced_after_1979
 
* Code der Bourne Shell war die Inspiration für den International Obfuscated C Code Contest".
 
* Code der Bourne Shell war die Inspiration für den International Obfuscated C Code Contest".
Zeile 37: Zeile 37:
 
* Mehr Funktionen.
 
* Mehr Funktionen.
 
* Sehr viel besser für interaktive Benutzung:
 
* Sehr viel besser für interaktive Benutzung:
** History  
+
** History,
 
** Commandline editing,
 
** Commandline editing,
 
** Job-Kontrolle.
 
** Job-Kontrolle.
Zeile 47: Zeile 47:
 
=== Bourne-Again-Shell ===
 
=== Bourne-Again-Shell ===
  
* Auftragsarbeit eines Festangestellten der Free Software Foundation für das GNU-Projekt.
+
* Autragsarbeit eines Festangestellten der Free Software Foundation für das GNU-Projekt.
 
** Auf BSD nicht standardmäßig installiert bzw. oft in <code>/usr/local/bin</code> o.ä.
 
** Auf BSD nicht standardmäßig installiert bzw. oft in <code>/usr/local/bin</code> o.ä.
 
* Kompatibel zu Bourne Shell:
 
* Kompatibel zu Bourne Shell:
Zeile 69: Zeile 69:
 
* Reimplementation der Bourne Shell mit stark erweiterten Features.
 
* Reimplementation der Bourne Shell mit stark erweiterten Features.
 
* Empfohlen als interaktive, nicht aber als nicht-interaktive Shell.
 
* Empfohlen als interaktive, nicht aber als nicht-interaktive Shell.
** Grund: Shell-Skripte in zsh setzen installierte zsh voraus.
+
** Grund: Shell-Skripten in zsh setzen installierte zsh voraus.
  
 
=== Kompatibilität ===
 
=== Kompatibilität ===
  
* Kern: Bourne Shell (und deshalb eine Empfehlung).
+
* Kern: Bourne Shell (und deshalb meine Empfehlung).
 
* Vorsicht: In "Bourne-kompatiblen" Shells kann man Code schreiben, der in Bourne ''nicht'' geht.
 
* Vorsicht: In "Bourne-kompatiblen" Shells kann man Code schreiben, der in Bourne ''nicht'' geht.
  
Zeile 84: Zeile 84:
 
** Zeilenweise Ein- und Ausgabe über ein tty (“Teletype”, Printer, serielle Schnittstelle, Terminal, Terminal Emulator).
 
** Zeilenweise Ein- und Ausgabe über ein tty (“Teletype”, Printer, serielle Schnittstelle, Terminal, Terminal Emulator).
 
* Betriebsmodus “non-interaktiv”
 
* Betriebsmodus “non-interaktiv”
* “Shebang”-Konvention in Skripten (erste Zeile <code>#!/bin/sh</code> ).
+
* “Shebang”-Konvention in Skripten (erste Zeile <code>#!/bin/sh</code>).
 
* Kommentare
 
* Kommentare
 
* Line Continuation
 
* Line Continuation
Zeile 109: Zeile 109:
 
*** <code>echo &quot;$foo&quot;</code> (“verkürzte Syntax”)
 
*** <code>echo &quot;$foo&quot;</code> (“verkürzte Syntax”)
 
*** <code>echo &quot;${foo}&quot;</code> (“vollständige Syntax”)
 
*** <code>echo &quot;${foo}&quot;</code> (“vollständige Syntax”)
** Variablen mit Bedeutung für die Shell selbst (Beispiele): $PATH, $PS1, $IFS, …
+
** Variablen mit Bedeutung für die Shell selbst (Beispiele): PATH, PS1, IFS, …
** “Interessante” Umgebungsvariablen: $PATH, $USER, $SHELL, $PPID, …
+
** “Interessante” Umgebungsvariablen: PATH, USER, SHELL, PPID, …
 
* Expansion:
 
* Expansion:
 
** Gute Übersicht:
 
** Gute Übersicht:
Zeile 164: Zeile 164:
 
** Empfehlung: Bourne Syntax verwenden, da vorwärtskompatibel.
 
** Empfehlung: Bourne Syntax verwenden, da vorwärtskompatibel.
 
* Source Files
 
* Source Files
** <em>Hinweis:</em> Kam im Vortrag aus Zeitgründen nicht dran.
+
** <em>Hinweis:</em> Kam im Vortrag aus Zeitgrpnden nicht dran.
 
** Inhalt einer anderen Datei an dieser Stelle komplett als Shellcode laden und ausführen.
 
** Inhalt einer anderen Datei an dieser Stelle komplett als Shellcode laden und ausführen.
 
** Beispiel: <code>. /usr/local/lib/shell-stuff/config.sh</code>
 
** Beispiel: <code>. /usr/local/lib/shell-stuff/config.sh</code>

Bitte kopiere keine Inhalte, die nicht Deine eigenen sind!

Du gibst uns hiermit Deine Zusage, dass
  • Du den Text nicht aus Wikipedia kopiert hast
  • Du den Text selbst verfasst hast
  • oder der Text entweder
    • Allgemeingut (public domain) ist
    • oder der Copyright-Inhaber seine Zustimmung gegeben hat.
Wichtig
  • Benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Copyright-Inhabers!
  • Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der 'Diskussion:'-Seite darauf hin.
  • Bitte beachte, dass alle UUGRN-Beiträge automatisch unter der der Creative Commons Lizenz stehen.
  • Falls Du nicht möchtest, dass Deine Arbeit hier von anderen verändert und verbreitet wird, dann drücke nicht auf "Artikel Speichern".

Bitte beantworte die folgende Frage, um diese Seite speichern zu können (weitere Informationen):

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)