Android

Bash case statement

Introduction to Bash Scripting 13 - The Case Statement

Introduction to Bash Scripting 13 - The Case Statement

Inhaltsverzeichnis:

Anonim

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 case Schlüsselwort, gefolgt vom case-Ausdruck und dem in Schlüsselwort. Die Anweisung endet mit dem esac esac. 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.

Bash-Terminal