Bash Case Anweisung Syntax und Beispiele

Bash Case Anweisung Syntax und Beispiele

Die Fallerklärung ist eine leistungsstarke bedingte Aussage in Bash, mit der Sie eine Variable gegen eine Werteliste testen können. Es ist eine prägnantere und effizientere Alternative zur Verwendung mehrerer If-Then-Anweisungen. Oft ist es eine gute Alternative zu IF-ELSE-Aussagen. Sie können es auch verwenden, um die Befehlszeilenargumente in einem Shell -Skript zu verarbeiten.

In diesem Artikel werden wir Ihnen die Fallerklärung in Bash vorstellen und Beispiele dafür angeben, wie sie in Bash -Skripten verwendet werden können.

Die Syntax der Fallerklärung in Bash

Die Syntax der Fallerklärung in Bash lautet wie folgt:

Fallausdruck in Muster1) Befehlen1 ;; Muster2) Befehle2 ;; muster3) commands3 ;; *) default_commands ;; ESAC
12345678910Fallausdruck in Muster1) Befehlen1 ;; Muster2) Befehle2 ;; muster3) commands3 ;; *) default_commands ;; esac

Das Schlüsselwort des Falls gibt den Beginn der Fallanweisung an, und das in Schlüsselwort in Schlüsselwort, den Ausdruck aus der Liste der Muster unterscheidet. Jedes Muster ist in Klammern eingeschlossen und gefolgt von einer Liste von Befehlen, die ausgeführt werden sollen, wenn das Muster mit dem Ausdruck übereinstimmt. Das doppelte Semikolon (;;) Gibt das Ende jeder Befehlsliste an. Der *) Muster entspricht jedem Ausdruck, der nicht zu den vorherigen Mustern übereinstimmt, und die Standard -Commands werden in diesem Fall ausgeführt.

Verwenden der Fallanweisung in Bash

Die Fallerklärung in Bash ist besonders nützlich, wenn Sie eine Variable mit einer Liste möglicher Werte vergleichen möchten. Hier ist ein Beispiel, das zeigt, wie Sie die Fallanweisung verwenden können, um den Wert der $ User -Umgebungsvariablen zu überprüfen:

Fall $ user in root) echo "Sie sind als root angemeldet.";; Ubuntu) echo" Sie sind als Ubuntu angemeldet.";; *) echo" Sie sind als unbekannter Benutzer angemeldet.";; Esac
12345678Fall $ user in root) echo "Sie sind als root angemeldet.";; Ubuntu) echo" Sie sind als Ubuntu angemeldet.";; *) echo" Sie sind als unbekannter Benutzer angemeldet.";; Esac

In diesem Beispiel ist der geprüfte Ausdruck der Wert der $ Benutzer Umgebungsvariable. Die Muster sind die möglichen Werte von $ Benutzer (Root und Ubuntu), und das Standardmuster ist das *) Muster, das zu jedem Wert entspricht, der nicht Root oder Ubuntu ist.

Fallanweisung mit Befehlszeilenargumenten

Sie können die Fallanweisung auch verwenden, um Befehlszeilenargumente in einem Bash -Skript zu verarbeiten. Hier ist ein Beispiel, das zeigt, wie die Fallanweisung verwendet wird, um verschiedene Befehlszeilenoptionen zu verarbeiten:

Während Getopts "A: B: C:" Opt; do case $ opt in a) echo "Option A wurde mit Argument $ optarg" ;; b) Echo "Option B wurde mit Argument $ optarg" ;; c) Echo "Option C wurde mit Argument $ optarg" ;; *) Echo "Ungültige Option: -$ optarg" ;; ESAC fertig
123456789101112Während Getopts "A: B: C:" Opt; do case $ opt in a) echo "Option A wurde mit Argument $ optarg" ;; b) Echo "Option B wurde mit Argument $ optarg" ;; c) Echo "Option C wurde mit Argument $ optarg" ;; *) Echo "Ungültige Option: -$ optarg" ;; Esacdone

In diesem Beispiel die Getopts Der Befehl wird verwendet, um die Befehlszeilenoptionen zu verarbeiten. Die Fallanweisung wird verwendet, um jede Option (A, B und C) und ihr entsprechendes Argument zu behandeln. Das Standardmuster (*) wird verwendet, um ungültige Optionen zu verarbeiten.

Fallanweisung mit regelmäßigem Ausdruck

Die in der Fallerklärung verwendeten regulären Ausdrücke sind in quadratischen Klammern eingeschlossen ([]). Dies liegt daran, dass wir Charakterklassen verwenden, um verschiedene Arten von Zeichen zu entsprechen. Der + Das Zeichen Nach dem zweiten Muster wird ein oder mehrere Vorkommen des vorherigen Musters (in diesem Fall Kleinbuchstaben) übereinstimmen. Regelmäßige Ausdrücke können ziemlich komplex sein, und es gibt viele weitere Funktionen und Optionen, die Sie in Bash verwenden können, um Muster zu entsprechen.

Hier ist ein Beispiel dafür, wie Sie reguläre Ausdrücke mit der Fallerklärung in Bash verwenden können:

#!/bin/bash read -p "Geben.";; [a-z] [a-z]+) echo" Die Zeichenfolge beginnt mit einem Großbuchstaben und folgt von Kleinbuchstaben.";; [0-9]+) echo" Die Zeichenfolge enthält nur Zahlen.";; *) echo" Die Zeichenfolge stimmt nicht mit den Mustern überein.";; Esac
123456789101112131415161718#!/bin/bash read -p "Geben.";; [a-z] [a-z]+) echo" Die Zeichenfolge beginnt mit einem Großbuchstaben und folgt von Kleinbuchstaben.";; [0-9]+) echo" Die Zeichenfolge enthält nur Zahlen.";; *) echo" Die Zeichenfolge stimmt nicht mit den Mustern überein.";; Esac

In diesem Beispiel verwenden wir regelmäßige Ausdrücke, um verschiedene Stringsmuster zu entsprechen. Das erste Muster entspricht Saiten, die mit einem Kleinbuchstaben aus beginnen und mit einer Zahl wie A1, B2 usw. enden. Das zweite Muster entspricht Saiten, die mit einem Großbuchstaben beginnen und von einem oder mehreren Kleinbuchstaben wie Hello, World usw. folgen. Das dritte Muster entspricht Strings, die nur Zahlen enthalten, wie z. B. 123, 4567 usw. Das Standardmuster entspricht einer Zeichenfolge, die nicht mit einem der vorherigen Muster übereinstimmt.

Wenn das Skript ausgeführt wird, fordert es den Benutzer auf, eine Zeichenfolge einzugeben. Die Zeichenfolge wird dann mit der Fallanweisung gegen die verschiedenen Muster getestet. Wenn ein Muster übereinstimmt, wird die entsprechende Nachricht angezeigt. Wenn keines der Muster übereinstimmt, wird die Standardnachricht angezeigt.

Abschluss

Die Fallerklärung in Bash ist eine leistungsstarke und effiziente Alternative zur Verwendung mehrerer If-Then-Anweisungen. Sie können eine Variable gegen eine Liste möglicher Werte testen und verschiedene Befehle basierend auf dem Matching -Muster ausführen. Die Fallanweisung ist besonders nützlich, wenn Sie Befehlszeilenargumente verarbeiten oder eine Variable mit einer Liste möglicher Werte vergleichen möchten. Durch die Verwendung der Fallanweisung können Sie prägnanter und lesbarer Schreiben