Die Bash (Bourne Again Shell) ist die Standard-Shell vieler Unix- und Linux-Systeme. Sie ist gleichzeitig interaktive Kommandozeile und Skriptsprache — und damit das vielleicht wichtigste Werkzeug für Administratoren, Entwickler und alle, die mit Servern, Build-Pipelines oder Automatisierung arbeiten.

Bash ist Nachfolgerin der Bourne Shell (sh) aus den 1970ern, mit der sie weitgehend kompatibel ist. Sie ergänzt diese um zahlreiche Komfort-Funktionen — Arrays, assoziative Arrays, Brace Expansion, erweiterte Bedingungen und vieles mehr.

Zwei Welten

Bash wird auf zwei Wegen genutzt, die ineinander übergehen:

  • Interaktiv — als Kommandozeile, in der einzelne Befehle eingegeben und sofort ausgeführt werden. Hier zählen Komfort-Features wie Tab-Completion, History, Aliase und Prompt-Anpassungen.
  • Als Skript — in Dateien (üblicherweise mit #!/usr/bin/env bash als Shebang), die Abläufe automatisieren: Backups, Deployment, Datenmigration, CI/CD-Schritte.

In beiden Fällen besteht der Code aus dem Aufrufen von Programmen und der Verkettung ihrer Ein- und Ausgaben über Pipes (|), Umleitungen (>, >>, <) und Substitutionen ($(…)).

Stärken und Grenzen

Bash glänzt bei genau einer Aufgabenklasse: andere Programme orchestrieren. Dateien suchen, transformieren, kopieren, Binärprogramme aufrufen und ihre Ausgaben weiterverarbeiten — dafür ist sie gemacht. Sobald komplexere Logik, robuste Fehlerbehandlung oder strukturierte Daten im Spiel sind, stoßen Skripte schnell an Grenzen. Die übliche Empfehlung lautet: Bash bis ~100 Zeilen, danach besser Python, Go oder eine andere Sprache.

Disziplin im Skript

Robuste Bash-Skripte beginnen mit ein paar Konventionen: set -euo pipefail für sofortigen Abbruch bei Fehlern, doppelte Anführungszeichen um Variablen, Vermeidung von eval, und eine kritische Haltung gegenüber Eingaben. Werkzeuge wie ShellCheck finden zuverlässig die häufigsten Fallen — gepflegte Skripte sind ohne ShellCheck-Lauf eine seltene Ausnahme.

Alternativen

Neben Bash sind in der Praxis verbreitet: Zsh (mit Erweiterungen wie Oh My Zsh) als komfortablere interaktive Shell, Fish mit modernem Design, POSIX sh als kleinster gemeinsamer Nenner für portable Skripte. Für Skript-Logik jenseits des Trivialen sind außerdem Python, Perl oder Go häufig die bessere Wahl.

/ Weiter

Zurück zu Coding

Zur Übersicht