1. Startseite
  2. Bash Skript
  3. Case-Anweisung in Bash Script

Case-Anweisung in Bash Script

Die Bash-Anweisung case wird üblicherweise verwendet, um komplexe Bedingungen zu vereinfachen, wenn du mit mehreren verschiedenen Möglichkeiten umgehen musst. Wenn du die case-Anweisung anstelle von verschachtelten if-Anweisungen verwendest, wird dein Bash-Skript leichter lesbar und einfacher zu warten sein.

Die Bash case Anweisung funktioniert ähnlich wie die Javascript- oder C switch Anweisung. Der Hauptunterschied besteht darin, dass die Bash case-Anweisung nicht weiter nach weiteren Übereinstimmungen sucht, sobald sie eine gefunden hat und die damit verknüpften Anweisungen ausgeführt wurden, im Gegensatz zur C switch-Anweisung.

In diesem Tutorial werden die Grundlagen der Bash case-Anweisung behandelt und gezeigt, wie sie in Shell-Skripten verwendet werden kann.

case Anweisung Syntax

Die Bash case-Anweisung hat die folgende Form:

case AUSDRUCK in

  MUSTER_1)
    ANWEISUNGEN
    ;;

  MUSTER_2)
    ANWEISUNGEN
    ;;

  MUSTER_N)
    ANWEISUNGEN
    ;;

  *)
    ANWEISUNGEN
    ;;
esac
  • Jede case-Anweisung beginnt mit dem Schlüsselwort case, gefolgt vom Case-Ausdruck und dem Schlüsselwort in. Die Anweisung endet mit dem Schlüsselwort esac.
  • Es können mehrere Muster verwendet werden, die durch den Operator | getrennt sind. Der )-Operator beendet eine Liste von Mustern.
  • Ein Muster kann Sonderzeichen enthalten.
  • Ein Muster und die dazugehörigen Anweisungen bilden eine Klausel.
  • Jede Klausel muss mit ;; abgeschlossen werden.
  • Die Anweisungen, die dem ersten Muster entsprechen, das mit dem Ausdruck übereinstimmt, werden ausgeführt.
  • Es ist gängige Praxis, das Sternchen-Symbol (*) als letztes Muster zu verwenden, um den Standardfall zu definieren. Dieses Muster passt immer.
  • Wenn kein Muster gefunden wird, ist der Rückgabestatus Null. Ansonsten ist der Rückgabestatus der Exit-Status der ausgeführten Anweisungen.

Beispiel für die Fallanweisung

Hier ist ein Beispiel für die Verwendung der case-Anweisung in einem Bash-Skript, das die offizielle Sprache eines bestimmten Landes ausgibt:

languages.sh

#!/bin/bash

echo -n "Gib den Namen eines Landes ein: "
lies LAND

echo -n "Die offizielle Sprache von $LAND ist "

case $LAND in

  Litauen)
    echo -n "Litauisch"
    ;;

  Rumänien | Moldawien)
    echo -n "Rumänisch"
    ;;

  Italien | "San Marino" | Schweiz | "Vatikanstadt")
    echo -n "Italienisch"
    ;;

  *)
    echo -n "unbekannt"
    ;;
esac

Speichere das benutzerdefinierte Skript als Datei und führe es über die Kommandozeile aus.

bash languages.sh

Das Skript wird dich auffordern, ein Land einzugeben. Wenn du zum Beispiel Litauen eingibst, wird es mit dem ersten Muster übereinstimmen, und der echo-Befehl in dieser Klausel wird ausgeführt.

Das Skript gibt die folgende Ausgabe aus:

Gib den Namen eines Landes ein: Litauen
Die offizielle Sprache von Litauen ist Litauisch

Wenn du ein Land eingibst, das keinem anderen Muster außer dem standardmäßigen Sternchen-Symbol entspricht, zum Beispiel Argentinien, führt das Skript die echo-Anweisung innerhalb der Standardklausel aus.

Gib den Namen eines Landes ein: Argentinien
Die offizielle Sprache von Argentinien ist unbekannt

Abschluss

Nun solltest du ein gutes Verständnis dafür haben, wie man Bash case-Anweisungen schreibt. Diese Anweisungen werden häufig verwendet, um einem Shell-Skript von der Kommandozeile aus Parameter zu übergeben. Init-Skripte verwenden zum Beispiel case-Anweisungen, um Dienste zu starten, zu stoppen oder neu zu starten.

Wenn du Fragen oder Feedback hast, kannst du gerne einen Kommentar hinterlassen.

War dieser Beitrag hilfreich?

Verwandte Beiträge