logo

Bash-Fall

In diesem Thema besprechen wir die Grundlagen von Case-Anweisungen und deren Verwendung in Bash-Skripten.

Die Bash-Case-Anweisung ist die einfachste Form von IF-THEN-ELSE mit vielen ELIF-Elementen. Die Verwendung der case-Anweisung macht unser Bash-Skript lesbarer und einfacher zu warten. Diese werden im Allgemeinen angewendet, um komplexe Bedingungen mit mehreren verschiedenen Auswahlmöglichkeiten zu vereinfachen.

Die Bash-Case-Anweisung folgt einer ähnlichen Logik wie die Javascript- oder C-Switch-Anweisung. Es gibt einen kleinen Unterschied, wie folgt:

  • Die Bash-Case-Anweisung nimmt einen Wert einmal an und testet diesen Wert mehrmals. Es beendet die Suche nach einem Muster, sobald es es gefunden und die damit verknüpfte Anweisung ausgeführt hat, was im Fall der C-Switch-Anweisung fast umgekehrt ist.

Case-Anweisungssyntax

Die Syntax der Bash-Case-Anweisung ist unten angegeben:

 case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac 

Es gibt einige wichtige Punkte von Bash-Case-Anweisungen:

  • Jede case-Anweisung in der Bash beginnt mit dem Schlüsselwort „case“, gefolgt vom case-Ausdruck und dem Schlüsselwort „in“. Die case-Anweisung wird mit dem Schlüsselwort „esac“ geschlossen.
  • Wir können mehrere durch | getrennte Muster anwenden Operator. Der )-Operator gibt die Beendigung einer Musterliste an.
  • Ein Muster, das die Anweisungen enthält, wird als Klausel bezeichnet und muss durch ein doppeltes Semikolon (;;) abgeschlossen werden.
  • Als letztes Muster wird ein Sternchen (*) verwendet, um den Standardfall zu definieren. Es wird als Standardfall verwendet, wenn es als letzter Fall verwendet wird.

Wie es funktioniert

Zunächst erweitert die case-Anweisung den Ausdruck und versucht, eine Übereinstimmung mit jedem der enthaltenen Muster herzustellen. Wenn eine Übereinstimmung gefunden wird, werden alle verknüpften Anweisungen bis zum doppelten Semikolon (;;) ausgeführt. Nach der ersten Übereinstimmung endet der Fall mit dem Exit-Status der zuletzt ausgeführten Anweisung.

Wenn kein übereinstimmendes Muster vorhanden ist, ist der Beendigungsstatus des Falls Null. Andernfalls ist der Rückgabestatus der Exit-Status der ausgeführten Anweisungen.

Wenn das Standard-Sternchenmuster verwendet wird, wird es ausgeführt, wenn kein passendes Muster vorhanden ist.

Versuchen wir, diesen Mechanismus anhand einiger Beispiele zu verstehen:

Beispiel 1

In diesem Beispiel haben wir ein einfaches Szenario definiert, um die Verwendung der case-Anweisung zu demonstrieren.

Bash-Skript

 #!/bin/bash echo 'Do you know Java Programming?' read -p 'Yes/No? :' Answer case $Answer in Yes|yes|y|Y) echo 'That's amazing.' echo ;; No|no|N|n) echo 'It's easy. Let's start learning from javatpoint.' ;; esac 

Ausgabe

Bash-Fall

Beispiel 2

In diesem Beispiel haben wir ein kombiniertes Szenario definiert, in dem es auch einen Standardfall gibt, wenn kein vorheriger übereinstimmender Fall gefunden wird.

Ostereier in Android

Bash-Skript

 #!/bin/bash echo 'Which Operating System are you using?' echo 'Windows, Android, Chrome, Linux, Others?' read -p 'Type your OS Name:' OS case $OS in Windows|windows) echo 'That's common. You should try something new.' echo ;; Android|android) echo 'This is my favorite. It has lots of applications.' echo ;; Chrome|chrome) echo 'Cool!!! It's for pro users. Amazing Choice.' echo ;; Linux|linux) echo 'You might be serious about security!!' echo ;; *) echo 'Sounds interesting. I will try that.' echo ;; esac 

Ausgabe

Wir haben das Skript mit drei verschiedenen Eingaben ausgeführt. Schauen Sie sich die Ausgabe unten an:

Bash-Fall

Abschluss

In diesem Thema haben wir anhand der Beispiele etwas über die Syntax und Verwendung der Bash-Case-Anweisung gelernt.