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

So arbeiten Sie mit Case-Anweisungen in Bash-Skripten

In diesem Artikel werfen wir einen Blick auf Bash-Case-Anweisungen und wie man sie in Bash-Skripten verwendet. Die Case-Anweisung ist ein Bash-Build und wird verwendet, um die bedingte Logik in Bash-Skripten zu vereinfachen.

[Das könnte Ihnen auch gefallen:So verwenden Sie den Declare-Befehl in der Linux-Bash-Shell ]

Um es einfach auszudrücken, wenn Ihr Code mehrere bedingte [ if - elif - else ] hat Anweisungen können Sie die Bedingungsanweisungen durch Fallanweisungen ersetzen. Das Konzept der case-Anweisung ist auch in anderen Programmiersprachen wie C, Perl, Java, Javascript usw. verfügbar. In einigen Sprachen handelt es sich um eine switch case-Anweisung und in einigen Sprachen um eine case-Anweisung, die sich entsprechend unterscheidet an die von Ihnen verwendete Sprache.

Syntax für die Case-Anweisung verstehen

Bevor Sie die case-Anweisung in Ihren Skripten verwenden, müssen Sie ihre Syntax verstehen.

case expression in

  pattern1)
    STATEMENTS ;;

  pattern2 | pattern3)
    STATEMENTS ;;

  pattern-N)
    STATEMENTS ;;
    
  *)
    STATEMENTS
    ;;
esac

Erklärung der obigen Fallanweisung.

  • Die case-Anweisung sollte mit dem Schlüsselwort case beginnen und mit dem esac enden Schlüsselwort.
  • Die case-Anweisung wertet einen Ausdruck aus und findet heraus, ob der Ausdruck mit einem der Muster übereinstimmt. Der Ausdruck sollte nach dem Schlüsselwort case stehen.
  • Die Muster werden ausgewertet und wenn es mit dem Ausdruck übereinstimmt, wird die Anweisung ausgeführt. Muster und Anweisungen werden Klauseln genannt. Um eine Klausel zu beenden, verwenden Sie ein doppeltes Semikolon ";;" .
  • Wenn ein Muster übereinstimmt, werden die restlichen Muster übersprungen.
  • Sie können so viele Muster erstellen, wie Sie möchten.
  • Das Sternchensymbol (*) wird als Standardmuster verwendet. Wenn ein Ausdruck keinem der Muster entspricht, wird das Standardmuster verwendet.

Eine einfache Case-Anweisung im Skript erstellen

Ich erstelle eine einfache Fallaussage, die das Team anzeigt, das die Champions League basierend auf dem Jahr gewonnen hat. Der Benutzer muss das Jahr als Eingabe übergeben.

#!/usr/bin/env bash

read -p "Enter the year to get the winner name : " WINNER
case $WINNER in
  2016) echo "  Winner is  Real Madrid";;
  2017) echo "  Winner is  Real Madrid";;
  2018) echo "  Winner is  Liverpool";;
  2019) echo "  Winner is  Bayern Munich";;
  2020) echo "  Winner is  Chelsea";;
  *) echo " No data available for the given option";;
esac

Schauen Sie sich den obigen Code und die Ausgabe an. Der Benutzer übergibt das Jahr als Eingabe und wird in der Variablen WINNER gespeichert . Das Jahr wird anhand aller Jahre ausgewertet, die als Muster in der Fallanweisung angegeben sind. Wenn das vom Benutzer vergangene Jahr keinem Muster entspricht Standardmuster (*) verwendet wird.

Es ist auch möglich, mehrere Muster in einer einzigen Klausel auszuwerten. Sie müssen den "|" verwenden Symbol für die Verwendung eines oder mehrerer Muster in einer Klausel. Wir verwenden denselben Code aus dem vorherigen Beispiel. Wenn Sie sich die Jahre 2016 und 2017 ansehen, gewann dieselbe Mannschaft den Pokal. Anstatt separate Klauseln für 2016 und 2017 zu erstellen, können Sie eine einzelne Klausel erstellen.

#!/usr/bin/env bash

read -p "Enter the year to get the winner name : " WINNER
case $WINNER in
  2016 | 2017) echo "  Winner is  Real Madrid";;
  2018) echo "  Winner is  Liverpool";;
  2019) echo "  Winner is  Bayern Munich";;
  2020) echo "  Winner is  Chelsea";;
  *) echo " No data available for the given option";;
esac

Wenn der Benutzer nun 2016 oder 2017 als Eingabe übergibt, wird dies in der ersten Klausel ausgewertet.

Sie können den Musterabgleich auch in den case-Anweisungen verwenden. Ich ändere den gleichen Code erneut und füge zwei weitere Klauseln hinzu, die für Strings und andere Jahre ausgewertet werden.

#!/usr/bin/env bash

read -p "Enter the year to get the winner name : " WINNER
case $WINNER in
  2016 | 2017) echo "  Winner is  Real Madrid";;
  2018) echo "  Winner is  Liverpool";;
  2019) echo "  Winner is  Bayern Munich";;
  2020) echo "  Winner is  Chelsea";;
  [a..z]* | [A..Z]*) echo " Year should be passed as argument. Input is wrong";;
  [0-9][0-9][0-9][0-9]) echo "No data for the passed year..."
esac

Ich schlage vor, Sie werfen einen Blick auf ~/.bashrc Datei und Dateien unter /etc/init.d/ wo die case-Anweisung verwendet wird. Wenn Sie diese Dateien durchgehen, erhalten Sie eine Vorstellung davon, wie sie in Echtzeit verwendet werden.

Das war es für diesen Artikel. Die Case-Anweisung ist ein wichtiges Konzept, das Sie kennen sollten, wenn Sie mit Shell-Skripten arbeiten. Wenn Sie anfangen, bedingte Anweisungen durch Case-Anweisungen zu ersetzen, wird Ihr Code sauber und wartbar.


Linux
  1. Wie bringt man Vim dazu, richtig mit Tmux zu arbeiten?

  2. Wie kann man Bash so einstellen, dass *.exe mit Mono ausgeführt wird?

  3. Wie werden Groß- und Kleinschreibungsmuster mit Ls abgeglichen?

  4. Bash-If-Else-Anweisung mit Beispielen

  5. 5 Beispiele für Bash-Case-Anweisungen

So verwenden Sie bedingte Anweisungen in Bash-Skripten

So erstellen Sie Dokumente mit Bash-Skripten

So arbeiten Sie mit Ansible Provisioner in Vagrant

So verwenden Sie den Echo-Befehl in Bash-Skripten unter Linux

So arbeiten Sie mit Case-Anweisungen in Bash-Skripten

Bash If Else Syntax mit Beispielen