Introduction to Bash Scripting 13 - The Case Statement
Inhaltsverzeichnis:
Bash-Case-Anweisungen werden im Allgemeinen verwendet, um komplexe Bedingungen zu vereinfachen, wenn Sie mehrere Möglichkeiten haben. Wenn Sie die case-Anweisung anstelle von verschachtelten if-Anweisungen verwenden, können Sie die Lesbarkeit Ihrer Bash-Skripte verbessern und die Wartung vereinfachen.
Die Bash-case-Anweisung hat ein ähnliches Konzept wie die Javascript- oder C-switch-Anweisung. Der Hauptunterschied besteht darin, dass die Bash-case-Anweisung im Gegensatz zur C-switch-Anweisung nicht weiter nach einer Musterübereinstimmung sucht, sobald sie eine gefunden und mit diesem Muster verknüpfte Anweisungen ausgeführt hat.
In diesem Tutorial werden wir die Grundlagen der Bash-Case-Anweisungen behandeln und Ihnen zeigen, wie Sie sie in Ihren Shell-Skripten verwenden.
Case-Statement-Syntax
Die Bash-Case-Anweisung hat die folgende Form:
case EXPRESSION in PATTERN_1) STATEMENTS;; PATTERN_2) STATEMENTS;; PATTERN_N) STATEMENTS;; *) STATEMENTS;; esac
- Jede case-Anweisung beginnt mit dem
caseSchlüsselwort, gefolgt vom case-Ausdruck und deminSchlüsselwort. Die Anweisung endet mit demesacesac. Sie können mehrere durch|getrennte Muster verwenden Operator. Der Operator) beendet eine Musterliste. Ein Muster kann Sonderzeichen enthalten. Ein Muster und die dazugehörigen Befehle werden als Klausel bezeichnet. Jede Klausel muss mit;;Die Befehle, die dem ersten Muster entsprechen, das dem Ausdruck entspricht, werden ausgeführt. Es ist üblich, das Platzhalter-Sternsymbol (*) als endgültiges Muster für die Definition des Standardfalls zu verwenden. Dieses Muster stimmt immer überein. Wenn kein Muster übereinstimmt, ist der Rückgabestatus Null. Andernfalls ist der Rückgabestatus der Beendigungsstatus der ausgeführten Befehle.
Case Statement Beispiel
Hier ist ein Beispiel, in dem die case-Anweisung in einem Bash-Skript verwendet wird, das die offizielle Sprache eines bestimmten Landes druckt:
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 dies mit dem ersten Muster überein, und der
echo
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
Enter the name of a country: Argentina The official language of Argentina is unknown
Fazit
Inzwischen sollten Sie ein gutes Verständnis für das Schreiben von Bash-Case-Anweisungen haben. Sie werden häufig verwendet, um Parameter über die Befehlszeile an ein Shell-Skript zu übergeben. Beispielsweise verwenden die Init-Skripte case-Anweisungen zum Starten, Beenden oder Neustarten von Diensten.
Cisco VAR Case-Signale Änderungen
Cisco verlor einen Gerichtsfall, der von einem Reseller eingereicht wurde, und wurde zur Zahlung eines Schadens von über $ 6 Mio. verurteilt.
Zwei plädieren in der Telecom-Bestechung Case
Zwei Miami-Männer bekennen sich schuldig im Zusammenhang mit Bräuten für haitianische Beamte für einen Telekommunikationsvertrag.
Richter wiegt Zeugnis in RealDVD Copy Case
Vorläufige Zeugenaussage endete im RealDVD-Fall.







