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

Wie verwende ich if-else in Shell-Skripten?

Lassen Sie uns nach unserem vorherigen Tutorial zu Arrays in Shell-Skripten verstehen, wie wir if-else in Shell-Skripten verwenden können.

Die bedingte Programmierung ist ein wichtiger Bestandteil jeder Programmiersprache, da die Ausführung jeder einzelnen Anweisung in unserem Programm meistens unerwünscht ist.

Und wir brauchen eine Möglichkeit, Anweisungen bedingt auszuführen. Das if-else in Shell-Skripten dient genau dieser Situation.

Bedingungen in Shell-Skripten

Einer der wichtigsten Teile der bedingten Programmierung sind die if-else-Anweisungen. Mit einer if-else-Anweisung können Sie iterative bedingte Anweisungen in Ihrem Code ausführen.

Wir verwenden if-else in Shell-Skripten, wenn wir eine Bedingung auswerten möchten, und dann entscheiden, einen Satz zwischen zwei oder mehr Sätzen von Anweisungen auszuführen, die das Ergebnis verwenden.

Dies ermöglicht uns im Wesentlichen, eine Antwort auf das Ergebnis auszuwählen, die unser bedingter Ausdruck auswertet.

Wie funktioniert if-else in Shell-Skripten?

Jetzt wissen wir, was eine if-else-Funktion ist und warum sie für jeden Programmierer wichtig ist, unabhängig von seiner Domäne. Um if-else in Shell-Skripten zu verstehen, müssen wir die Arbeitsweise der Bedingungsfunktion aufschlüsseln.

Schauen wir uns die Syntax des If-Else-Bedingungsblocks an.

if [condition]
then
   statement1
else
   statement2
fi

Hier haben wir vier Schlüsselwörter, nämlich if, then, else und fi.

  1. Das Schlüsselwort if gefolgt von einer Bedingung .
  2. Diese Bedingung wird ausgewertet, um zu entscheiden, welche Anweisung vom Prozessor ausgeführt wird.
  3. Wenn die Bedingung zu TRUE ausgewertet wird, führt der Prozessor die Anweisung(en) gefolgt vom Schlüsselwort then aus . In der Syntax wird es als statement1 erwähnt .
  4. In einem Fall, in dem die Bedingung zu FALSE ausgewertet wird, führt der Prozessor die Anweisung(en) gefolgt vom Schlüsselwort else aus . Dies wird als Anweisung2 bezeichnet in der Funktionssyntax.

Eine wichtige Sache, die Sie beachten sollten, ist, dass beim Shell-Skripting wie bei der C-Programmierung zwischen Groß- und Kleinschreibung unterschieden wird. Daher müssen Sie bei der Verwendung der Schlüsselwörter in Ihrem Code vorsichtig sein.

Wie man if-else in Shell-Skripten verwendet

Es ist einfach, die Syntax einer Funktion zu sehen und zu glauben, dass Sie wissen, wie man sie benutzt. Aber es ist immer besser, eine Funktion anhand von Beispielen zu verstehen, weil sie Ihnen helfen, die Rolle zu verstehen, die verschiedene Aspekte einer Funktion spielen.

Hier sind einige nützliche Beispiele für if-else in Shell-Skripten, um Ihnen eine bessere Vorstellung davon zu geben, wie Sie dieses Tool verwenden können.

Befehl Beschreibung
&& Logisches UND
|| Logisches ODER
$0 Argument 0, d. h. der Befehl, der zum Ausführen des Skripts verwendet wird
$1 Erstes Argument (Nummer ändern um auf weitere Argumente zugreifen zu können)
-eq Gleichheitsprüfung
-ne Ungleichheitsprüfung
-lt Kleiner als
-le Kleiner als oder gleich
-gt Größer als
-ge Größer als oder gleich

1. Mit if-else prüfen, ob zwei Zahlen gleich sind

Wenn Sie versuchen, die Funktionsweise einer Funktion wie if-else in einem Shell-Skript zu verstehen, ist es gut, die Dinge einfach anzufangen. Hier initialisieren wir zwei Variablen a und b und verwenden dann die if-else-Funktion, um zu prüfen, ob die beiden Variablen gleich sind. Das Bash-Skript sollte für diese Aufgabe wie folgt aussehen.

#!/bin/bash
m=1
n=2

if [ $n -eq $m ]
then
        echo "Both variables are the same"
else
        echo "Both variables are different"
fi

Ausgabe:

Both variables are different

2. Verwendung von if-else, um zwei Werte zu vergleichen

Die häufigere Verwendung von if-else in Shell-Skripten ist der Vergleich zweier Werte. Der Vergleich einer Variablen mit einer anderen Variablen oder einem festen Wert hilft in einer Vielzahl von Fällen von allen Arten von Programmierern.

Für dieses Beispiel werden wir zwei Variablen initialisieren und die if-else-Funktion verwenden, um die Variable zu finden, die größer als die andere ist.

#!/bin/bash
a=2
b=7
if [ $a -ge $b ]
then
  echo "The variable 'a' is greater than the variable 'b'."
else
  echo "The variable 'b' is greater than the variable 'a'."
fi

Ausgabe:

The variable 'b' is greater than the variable 'a'.

3. Mit if-else prüfen, ob eine Zahl gerade ist

Manchmal stoßen wir auf Situationen, in denen wir mit geraden und ungeraden Zahlen umgehen und zwischen ihnen unterscheiden müssen. Dies kann mit if-else in Shell-Skripten erfolgen, wenn wir die Hilfe des Modulo-Operators nehmen.

Der Modulo-Operator dividiert eine Zahl durch einen Divisor und gibt den Rest zurück.

Da wir wissen, dass alle geraden Zahlen ein Vielfaches von 2 sind, können wir das folgende Shell-Skript verwenden, um für uns zu prüfen, ob eine Zahl gerade oder ungerade ist.

#!/bin/bash
n=10
if [ $((n%2))==0 ]
then
  echo "The number is even."
else
  echo "The number is odd."
fi

Ausgabe:

The number is even

Wie Sie sehen können, haben wir einen Teil der Bedingung in doppelte Klammern gesetzt. Das liegt daran, dass die Modulo-Operation ausgeführt werden muss, bevor die Bedingung überprüft wird.

Außerdem führt das Einschließen in doppelte Klammern Anweisungen im C-Stil aus, sodass Sie einige C-Stil-Befehle in Bash-Skripten verarbeiten können.

4. Verwendung von if-else als einfache Passwortabfrage

Die if-else-Funktion ist bekannt für ihre Vielseitigkeit und ihren Anwendungsbereich. In diesem Beispiel verwenden wir if-else im Shell-Skript, um die Schnittstelle für eine Passwortabfrage zu erstellen.

Dazu werden wir den Benutzer auffordern, das Passwort einzugeben und es in der Variablen pass zu speichern.

Wenn es mit dem vordefinierten Passwort übereinstimmt, das in diesem Beispiel „password“ ist, erhält der Benutzer die Ausgabe als „Das Passwort ist korrekt“.

Andernfalls teilt das Shell-Skript dem Benutzer mit, dass das Passwort falsch war, und fordert ihn auf, es erneut zu versuchen.

#!/bin/bash
echo "Enter password"
read pass
if [ $pass="password" ]
then
  echo "The password is correct."
else
  echo "The password is incorrect, try again."
fi

Schlussfolgerung

Die Funktion von if-else in Shell-Skripten ist ein wichtiger Vorteil für Shell-Programmierer. Es ist das beste Werkzeug, wenn Sie eine Reihe von Anweisungen basierend auf vordefinierten Bedingungen ausführen müssen.

Der if-else-Block ist einer, wenn nicht der wichtigste Teil der bedingten Programmierung. Indem Sie die Ausführung bestimmter Anweisungen regulieren, machen Sie Ihren Code nicht nur effizienter, sondern sparen auch wertvolle Zeit, die der Prozessor möglicherweise mit der Ausführung von Anweisungen verschwendet, die für einen bestimmten Fall unnötig sind.

Wir hoffen, dass dieses Tutorial Ihnen helfen konnte, die Verwendung der if-else-Funktion zu verstehen. Wenn Sie Fragen, Feedback oder Vorschläge haben, können Sie sich gerne in den Kommentaren unten an uns wenden.


Linux
  1. Wie lösche ich Root-Rechte in Shell-Skripten?

  2. Wie testet man die Posix-Konformität von Shell-Skripten?

  3. So echoen Sie eine neue Zeile in Bash-Shell-Skripten

  4. So verwenden Sie Shell-Aliase unter Linux

  5. Wie verwende ich den su-Befehl über die Adb-Shell?

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

So installieren und verwenden Sie die ZSH-Shell unter Linux

So verwenden Sie GNOME-Shell-Erweiterungen [Vollständige Anleitung]

So installieren und verwenden Sie Nu Shell unter Linux

Wie liest man Befehlszeilenargumente in Shell-Skripten?

Wie verwende ich die Linux-Bash-Shell in Windows 10?