GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash-Case-Statement

Der Bash-case -Anweisung wird im Allgemeinen verwendet, um komplexe Bedingungen zu vereinfachen, wenn Sie mehrere verschiedene Möglichkeiten haben. Verwenden des case -Anweisung anstelle von verschachteltem if -Anweisungen helfen Ihnen dabei, Ihre Bash-Skripte besser lesbar und wartungsfreundlicher zu machen.

Der Bash-case -Anweisung hat ein ähnliches Konzept wie Javascript oder C switch Erklärung. Der Hauptunterschied besteht darin, dass im Gegensatz zu C switch -Anweisung, der Bash-case -Anweisung sucht nicht weiter nach einer Musterübereinstimmung, sobald sie eine gefunden und Anweisungen ausgeführt hat, die diesem Muster zugeordnet sind.

In diesem Tutorial behandeln wir die Grundlagen des Bash-case -Anweisung und zeigen Ihnen, wie Sie sie in Ihren Shell-Skripten verwenden.

case Anweisungssyntax #

Der Bash-case Die Anweisung hat folgende Form:

case EXPRESSION in

  PATTERN_1)
    STATEMENTS
    ;;

  PATTERN_2)
    STATEMENTS
    ;;

  PATTERN_N)
    STATEMENTS
    ;;

  *)
    STATEMENTS
    ;;
esac
  • Jeder case Anweisung beginnt mit dem case Schlüsselwort, gefolgt vom case-Ausdruck und dem in Stichwort. Die Anweisung endet mit dem esac Schlüsselwort.
  • Sie können mehrere Muster verwenden, die durch | getrennt sind Operator. Der ) Operator beendet eine Musterliste.
  • Ein Muster kann Sonderzeichen enthalten.
  • Ein Muster und die zugehörigen Befehle werden als Klausel bezeichnet.
  • Jede Klausel muss mit ;; abgeschlossen werden .
  • Die Befehle, die dem ersten Muster entsprechen, das dem Ausdruck entspricht, werden ausgeführt.
  • Es ist üblich, das Platzhalter-Sternchen-Symbol (* ) als endgültiges Muster zum Definieren des Standardfalls. Dieses Muster wird immer übereinstimmen.
  • Wenn kein Muster gefunden wird, ist der Rückgabestatus Null. Andernfalls ist der Rückgabestatus der Ausgangsstatus der ausgeführten Befehle.

Case-Statement-Beispiel #

Hier ist ein Beispiel mit dem case Anweisung in einem Bash-Skript, das die offizielle Sprache eines bestimmten Landes ausgibt:

languages.sh
#!/bin/bash

echo -n "Enter the name of a country: "
read COUNTRY

echo -n "The official language of $COUNTRY is "

case $COUNTRY in

  Lithuania)
    echo -n "Lithuanian"
    ;;

  Romania | Moldova)
    echo -n "Romanian"
    ;;

  Italy | "San Marino" | Switzerland | "Vatican City")
    echo -n "Italian"
    ;;

  *)
    echo -n "unknown"
    ;;
esac

Speichern Sie das benutzerdefinierte Skript als Datei und führen Sie es über die Befehlszeile aus.

bash languages.sh

Das Skript fordert Sie auf, ein Land einzugeben. Wenn Sie beispielsweise „Litauen“ eingeben, stimmt es mit dem ersten Muster und dem echo überein Befehl in dieser Klausel wird ausgeführt.

Das Skript gibt die folgende Ausgabe aus:

Enter the name of a country: Lithuania
The official language of Lithuania is Lithuanian

Wenn Sie ein Land eingeben, das mit keinem anderen Muster als dem Standard-Wildcard-Sternchen-Symbol übereinstimmt, sagen wir Argentinien, führt das Skript das echo aus Befehl innerhalb der Standardklausel.

Enter the name of a country: Argentina
The official language of Argentina is unknown

Schlussfolgerung #

Inzwischen sollten Sie ein gutes Verständnis dafür haben, wie man bash case schreibt Aussagen. Sie werden häufig verwendet, um Parameter von der Befehlszeile aus an ein Shell-Skript zu übergeben. Beispielsweise verwenden die Init-Skripte case Anweisungen zum Starten, Stoppen oder Neustarten von Diensten.

Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.


Linux
  1. Bash-If-Else-Anweisung mit Beispielen

  2. 4 Beispiele für Bash-If-Anweisungen ( If then fi, If then else fi, If elif else fi, Nested if )

  3. Bash/sh 'if else'-Anweisung

  4. Linux-Bash, Camel-Case-String zum Trennen durch Bindestrich

  5. Gibt es eine goto-Anweisung in bash?

Bash if..else-Anweisung

Bash Shebang

Bash-Skripting – Case-Statement

So arbeiten Sie mit Case-Anweisungen in Bash-Skripten

Bash If Else Syntax mit Beispielen

Bash If Else und andere bedingte Anweisungen verstehen