Bourne-again shell

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von BASH)
Wechseln zu: Navigation, Suche
Bash
Bash demo.png
Beispiel einer bash-Sitzung
Basisdaten
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

[Bearbeiten] 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]

[Bearbeiten] 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.

[Bearbeiten] 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) eines beliebigen Programmes 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

[Bearbeiten] 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

[Bearbeiten] Weblinks

Wikibooks Wikibooks: Linux-Kompendium: Shellprogrammierung – Lern- und Lehrmaterialien

[Bearbeiten] Einzelnachweise

  1. http://www.heise.de/ix/news/meldung/133409
  2. http://tiswww.case.edu/php/chet/bash/NEWS
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Navigation
Mitmachen
Drucken/exportieren
Werkzeuge
In anderen Sprachen