- Bourne-again shell
-
Bash
Beispiel einer bash-SitzungBasisdaten Entwickler Chet Ramey Aktuelle Version 4.2
(13. Februar 2011)Betriebssystem Unix, u.a. Linux Kategorie Kommandozeileninterpreter Lizenz GPL (Freie Software) Deutschsprachig Ja Homepage Die Bourne-again shell (bash) ist eine freie Unix-Shell und Teil des GNU-Projekts. Sie ist heute auf vielen unixoiden Systemen die Standard-Shell.
Der Name ist absichtlich mehrdeutig und bedeutet unter anderem „wiedergeborene (born again) Shell“, „wieder einmal (eine) Bourne-Shell“ oder auch aus dem Englischen to bash (schlagen, kritisieren, schlecht machen).
Inhaltsverzeichnis
Geschichte
Geschrieben wurde bash 1987 von Brian Fox und wurde 1990 von Chet Ramey übernommen. Version 3 erschien am 27. Juli 2004. Version 4 erschien am 20. Februar 2009 und brachte einige Neuerungen mit sich. Darunter sind eine neue Ausgabeumleitung, assoziative Arrays und eine neue Wildcard (**). [1] [2]
Funktionalität
Die Shell ist weitgehend kompatibel zur Bourne-Shell (sh) und beherrscht zusätzlich sowohl die meisten Funktionen der Korn-Shell (ksh) als auch Teile der C-Shell (csh)-Syntax, wie zum Beispiel die „Command-History“, die $RANDOM-Variable und die POSIX-Form der Command-Substitution $(...) wurden übernommen. Auch wurde sie um Funktionen wie z. B. der Ganzzahlarithmetik ohne die Ausführung externer Prozesse und Vereinfachung der I/O-Umleitungen erweitert. Bash bietet außerdem die Möglichkeit, in der Datei ~/.bashrc eigene Einstellungen wie Designs zu speichern.
Programmierung
Bash-Programmierung unterscheidet sich in vielen Punkten von anderen Programmiersprachen. So wird beispielsweise bei der Verzweigung die Bedingung nicht von der Shell selbst ausgewertet, sondern an ein weiteres Programm übergeben:
if [ Bedingung ] ; then # Falls Bedingung wahr ist, wird dies ausgeführt else # Falls Bedingung falsch ist, wird dies ausgeführt fi
Die beiden eckigen Klammern sind keine Begrenzer, sondern ein Synonym für den integrierten (builtin) Shell-Befehl test. Der Befehl test prüft die Bedingung und liefert einen Rückgabewert wahr oder falsch, der von der if-Anweisung verarbeitet wird. Der oben angeführte Code ist also identisch mit der folgenden Schreibweise:
if test Bedingung ; then # Falls Bedingung wahr ist, wird dies ausgeführt else # Falls Bedingung falsch ist, wird dies ausgeführt fi
Nach diesem Muster kann der Rückgabewert (wahr/falsch) von jedem beliebigen Programm verarbeitet werden, nicht nur der des test-Befehls. Als Beispiel wird hier der kill-Befehl verwendet, um zu testen, ob ein Prozess mit einer bestimmten Nummer noch läuft bzw. in der Lage ist, Signale entgegenzunehmen:
if kill -0 1234 ; then # Prozess 1234 läuft else # Prozess 1234 läuft nicht fi
Literatur
- Christian Meißner: Bash – Arbeiten und programmieren mit der Shell, Open Source Press, August 2011, ISBN 978-3-941841-44-4
- Karsten Günther: Bash - kurz & gut. 2008, ISBN 978-3-89721-533-7.
- Cameron Newham, Bill Rosenblatt: Learning the Bash Shell, 2nd Edition O’Reilly & Associates, Inc., 1998 , ISBN 1-56592-347-2
Weblinks
Wikibooks: Linux-Kompendium: Shellprogrammierung – Lern- und Lehrmaterialienbash(1)
– Linux-Manpage (Englisch)- Homepage
- Bash auf der GNU-Seite
- SelfLinux: Shellprogrammierung
- Advanced Bash-Scripting Guide (Englisch)
Einzelnachweise
Wikimedia Foundation.