- Thompson-Shell
-
osh ist eine Unix-Shell, die die letzte Version des frühesten Unix-Befehlsinterpreters (Thompson-Shell) reimplementiert. Der Name "osh" steht für old shell, alte Shell.
Inhaltsverzeichnis
Merkmale
osh verfügt über die Kerneigenschaften der Unix-Shell:
- Befehls- bzw. Filterketten (Pipes, "Rohrleitungen")
- Umleitung von Programmeingaben und -ausgaben
- Zusammenfassungen von Befehlen bzw. Befehlsketten in Befehls-Dateien (Shell-Skripten)
Im Unterschied zu anderen Unix-Shells, die Befehlsinterpreter und Programmiersprachen sind, verfügt osh über keine eigenen Programmierkonstrukte. Eine if- und eine goto-Anweisung sind als separate Befehle implementiert, mit denen bestimmte Programmieraufgaben (bedingte Steuerungen des Programmablaufs) gelöst werden können. In osh lassen sich keine Variablen vereinbaren. Da dem Befehlsinterpreter mehrere Argumente übergeben werden können, lassen sie sich teilweise durch Aufrufe neuer Shell-Instanzen simulieren.
osh unterscheidet sich von der Thompson-Shell durch verschiedene optionale Funktionserweiterungen. Zum Beispiel lassen sich Umgebungsvariablen direkt vereinbaren. Bei der Nutzung als primäre Shell liest osh eine vom Anwender geschriebene Profildatei, in der z.B. Pfadinformationen angepasst werden können.
Geschichte
Die Thompson-Shell (sh) war Bestandteil der ersten Unix-Edition von 1971. Die heute gängige Syntax - die Verwendung von Größer- und Kleiner-Zeichen - für Umleitungen von Eingaben und Ausgaben stammt von dieser von Kenneth Thompson geschriebenen Shell ab. Das Befehls- und Filterketten-Konzept (pipes) von Doug McIlroy wurde 1972 in der Thompson-Shell realisiert. Bis 1979 war die Thompson-Shell die Standard-Shell. Sie wurde von der Bourne-Shell abgelöst und von da an als old shell bezeichnet.
Literatur
Ken Thompson: The UNIX Command Language. In: Structured Programming - International Computer State of the Art Report, Infotech Information Ltd. Maidenhead, Berkshire, 1975, S. 375-384.
Weblinks
- osh Programmquellen: http://v6shell.org/
- osh Handbuchseite: http://v6shell.org/man/osh.1.html
- Beispiele für osh Befehls-Dateien: http://v6shell.org/command_files/
- sh Handbuchseite (1973): http://www.in-ulm.de/~mascheck/bourne/v3/
Wikimedia Foundation.