Verwenden der if…else-Anweisung in Bash für die bedingte Codeausführung.
Bash (Bourne Again Shell) ist eine Shell-Eingabeaufforderung und Skriptsprache in GNU/Linux-Betriebssystemen. Es ist die Standard-Shell für die meisten Linux-Distributionen.
Bedingte Anweisungen sind in jeder Programmiersprache von entscheidender Bedeutung, sowohl kompiliert als auch geskriptet. Sie ermöglichen es dem Benutzer, einen Code basierend auf einer vordefinierten Bedingung auszuführen, die eine der Grundlagen der Programmierlogik ist. In diesem Artikel erfahren Sie, wie Sie die ansonsten
bedingte Anweisung in Bash.
Einführung
Der ansonsten
-Anweisung in der Bash ermöglicht es dem Benutzer, den Codefluss basierend auf Bedingungen zu manipulieren. Der Benutzer kann separate auszuführende Codeblöcke angeben, von denen schließlich nur einer während der Laufzeit ausgeführt wird, basierend auf der entsprechenden Bedingung, die erfüllt ist.
Beachten Sie, dass mehr als zwei Bedingungen angegeben werden können, für die elif
Aussage verwendet werden kann. Der Benutzer kann mit eine beliebige Anzahl von Bedingungen angeben elif
, und schließlich eine Standardbedingung mit anders
Block. Sehen wir uns dies in der Syntax und den Beispielen unten genauer an.
Allgemeine Syntax
Die allgemeine Syntax für ansonsten
Aussage in Bash ist:
wenn, dann anders fi
Hier, wenn die erfüllt, d. h. wenn 0 (Erfolg) zurückgegeben wird, wird Codeblock 1 ausgeführt. Wenn die Bedingung nicht 0 zurückgibt, d. h. einen Fehlerstatus zurückgibt, wird der Codeblock 2 ausgeführt. Der
ansonsten
Block endet mit a fi
Erklärung.
Für mehrere Blöcke, die mehreren Bedingungen entsprechen,elif
wird genutzt:
wenn, dann dann elif dann elif ... ... anders fi
Hier werden die Bedingungen der Reihe nach geprüft und der Codeblock der ersten Bedingung ausgeführt, der den Status 0 (Erfolg) zurückgibt. Z.B. wenn Wenn keine der Bedingungen den Status 0 zurückgibt, Notiere dass der So führen Sie einen Codeblock aus wenn eine Variable einen bestimmten Wert hat: So prüfen Sie auf mehrere Werte: Die Bedingungen können beliebige Linux-Befehle sein. Der entsprechende Codeblock wird ausgeführt, wenn der Befehl erfolgreich ausgeführt wird. Im obigen Beispiel, da Wir können auch einen anderen verschachteln Dies ist nützlich, wenn ein separater Satz von Bedingungen überprüft werden soll, sobald eine Anfangsbedingung erfüllt ist. Der folgende Code versucht beispielsweise, eine Webserver-Software zu installieren: Der Code prüft zunächst, ob Nginx bereits im System installiert ist. Wenn dies der Fall ist, wird nur eine Nachricht angezeigt und beendet. Wenn dies nicht der Fall ist, versucht es, Nginx zu installieren. Wenn Nginx aus irgendeinem Grund nicht aus dem Paket im System installiert werden konnte, versucht es, Apache2 zu installieren. Wenn sogar Apache2 während der Installation einen Fehler ausgibt, wird es beendet und eine Meldung angezeigt, dass keine Software installiert werden konnte. Auf ähnliche Weise kann ein verschachtelter Block innerhalb eines Ähnlich wie bei jedem Bash-Code ist der Der Benutzer kann diesen Code auch in einer Skriptdatei speichern und die Skriptdatei ausführen. Der Um Ausführungsberechtigungen für diese Datei zu erteilen, führen Sie Folgendes aus: Um die Datei schließlich auszuführen, führen Sie Folgendes aus: Ähnlich wie bei jeder Programmiersprache, gibt einen Nicht-Null-Status (Fehler) zurück, dann
wird geprüft. Wenn
gibt Status 0 zurück,
ausgeführt wird. Danach werden keine weiteren Bedingungen überprüft und die Codeausführung wird nach dem Code fortgesetzt
fi
Erklärung. im else-Block ausgeführt wird. Beachten Sie, dass der else-Block optional ist. Wenn keine Bedingung erfüllt ist, sowie nein
anders
block angegeben ist, wird kein bedingter Codeblock ausgeführt und die Codeausführung wird mit dem Code fortgesetzt, nachdem der fi
Anweisung, wie im Flussdiagramm unten gezeigt.dann
Anweisung darf erst verwendet werden nach wenn
und elif
Erklärungen und nicht erforderlich nach dem anders
Erklärung.Beispiele
x=0 if [ $x -eq 0 ] then echo "Wert von X ist 0" else echo "Wert von X ist nicht 0" fi
x=2 if [ $x -eq 0 ] then echo "Wert von X ist 0" elif [ $x -eq 1 ] then echo "Wert von X ist 1" elif [ $x -eq 2 ] then echo "Wert von X ist 2" else echo "Wert von X ist nicht 0" fi
if npm -v then echo "NPM im System vorhanden" else sudo apt install npm fi
npm
wurde nicht im System installiert, der Befehl npm -v
hat einen Nicht-Null-Status zurückgegeben. Daher ging die Codeausführung in die anders
block, wo wir npm mit installieren geeignet
Paket-Manager. Wie wir sehen, forderte es mich auf, das Passwort einzugeben und begann mit der Installation von npm.ansonsten
innen blockieren an wenn
, anders
oder elif
Block:x=0 y=1 if [ $x -eq 0 ] then echo "X ist 0" if [ $y -eq 1 ] then echo "Y ist 1" else echo "Y ist nicht 1" fi else echo "X is nicht 0" fi
if nginx -v dann echo "NGINX ist bereits installiert." Sonst, wenn sudo apt nginx installiert, dann echo "NGINX-Installation erfolgreich." elif sudo apt install apache2, dann echo "APACHE2-Installation erfolgreich." else echo "Es kann keine Websoftware installiert werden." fi
elif
auch blockieren.Ausführung
ansonsten
: Skripte und Befehlszeileansonsten
-Anweisung kann direkt in der Bash-Shell oder aus einer ausführbaren Shell-Skriptdatei verwendet werden. Sobald der Bash-Interpreter ein . findet wenn
, anders
oder elif
-Anweisung setzt es die Shell fort, damit der Benutzer den Codeblock eingeben kann.#!/bin/bash
at the start gibt den Interpreter an, der bei der Ausführung der Datei verwendet werden soll. Obwohl Bash heutzutage die am häufigsten verwendete Shell ist, bevorzugen einige Benutzer Shells wie zsh, die anstelle von bash am Anfang dieser Datei angegeben werden sollten.chmod +x test.sh
./test.sh
Fazit
ansonsten
-Anweisung ist ein grundlegendes Merkmal von Bash. Das Erlernen ihrer Verwendung ist beim Schreiben grundlegender und fortgeschrittener Skripte ein langer Weg.