Wie vergleiche ich Zahlen in Bash?

Sie haben die vielen Vergleichsoperationen kennengelernt, die zum Vergleichen von Variablen in der Bash verwendet werden können. Aber manchmal kann es vorkommen, dass Sie mit zahlreichen Situationen konfrontiert werden, in denen Sie Skripte entwickeln müssen, um bestimmte Aufgaben auszuführen, und das Skript basierend auf bestimmten Ganzzahlwerten in der Bash mehrmals ausführen müssen. In diesen Situationen können wir die Bash-Operatoren verwenden, um Vergleiche von Ganzzahlen durchzuführen.

Verschiedene Möglichkeiten zum Vergleichen von Ganzzahlvariablen in Bash-Skripten:

Für den Vergleich ganzer Zahlen verwenden wir zwei der wichtigen Operatoren in Bash, um die Vergleiche zu erhalten, nämlich eckige und doppelte geschweifte Klammern.

Weg 01: Einzelne eckige Klammern

Der „[]„Quadratische Klammern werden auch als einzelne eckige Klammern bezeichnet, um den Befehl beim Bash-Scripting zu testen. Lassen Sie uns einige Beispiele hinzufügen, die die Idee des Bash-Scriptings unter Linux veranschaulichen, damit wir die verschiedenen Operatoren von Bash schnell implementieren können. Hier sind einige Beispiele für die Verwendung verschiedener Operatoren in einzelnen eckigen Klammern.

Beispiel 01: Verwendung der Operatoren „-eq“ und „-ne“.

Lassen Sie uns als erste Demonstration eines Vergleichsoperators den Operator „-eq“ in die Praxis umsetzen, der bestimmt, ob mehrere Variablen im Bash-Scripting gleichwertig sind. Um das Beispiel in die Praxis umzusetzen, müssen wir zunächst eine Bash-Skriptdatei erstellen, indem wir das Schlüsselwort „touch“ im Dateinamen verwenden und die Erweiterung „sh“ hinzufügen. Der gesamte Befehl zur Dateierstellung lautet wie folgt:

linux@linux-VirtualBox:~$ touch Compare.sh

Wenn der oben genannte Befehl eingegeben wird, wird eine Datei namens „compare.sh“ erstellt. Damit wir den Code in die Tat umsetzen können, wollen wir uns anschließend in den „Nano“-Editor begeben. Um dies zu erreichen, fügen wir den Befehl „compare.sh“ nach dem Schlüsselwort „nano“ hinzu, wie unten gezeigt:

linux@linux-VirtualBox:~$ nano vergleichen.sh

Der Nano-Editor wird gestartet, nachdem die Eingabetaste gedrückt wurde. Damit wir die beiden Ganzzahlen vergleichen können, müssen wir in diesem Abschnitt den notwendigen Code schreiben.

1: Gleich „-eq“-Operator

Wir haben in diesem Code zwei Variablen mit den Namen „Variable1“ und „Variable2“ verwendet und das Schlüsselwort „read“ verwendet, das die Werte dieser Variablen jeweils zur Laufzeit vom Benutzer abruft. Die „if“-Anweisung wurde dann verwendet, um festzustellen, ob die ganzen Zahlen gleich sind.

echo „Geben Sie eine Eingabe-Ganzzahl Variable1 ein:“
Variable1 lesen
echo „Geben Sie eine ganzzahlige Eingabevariable2 ein:“
Variable2 lesen
Wenn [ $variable1 -eq $variable2 ];
Dann
echo „Beide ganzzahlige Eingabevariablen sind gleich …“
anders
echo „Beide ganzzahlige Eingabevariablen sind nicht gleich …“
fi

Um den Nano-Editor nach Abschluss des Programmschreibens zu schließen, geben Sie „Strg + X“ ein. Dann kehrten wir noch einmal zum Haupt-Linux-Terminal zurück. Schreiben Sie „bash“ und den Dateinamen, um den Code auszuführen.

linux@linux-VirtualBox:~$ bash vergleichen.sh

Das Ergebnis der Ausführung des oben gezeigten Codes ist hier zu sehen:

Geben Sie eine ganzzahlige Eingabevariable1 ein:
100
Geben Sie eine ganzzahlige Eingabevariable2 ein:
100
Beide Eingabe-Integer-Variablen sind gleich…

2: Ungleich „-ne“-Operator

Jetzt verwenden wir den Vergleichsoperator „-ne“, was „ungleich“ bedeutet. Mit diesem Operator prüfen wir, ob „Variable1“ nicht gleich „Variable2“ im Bash-Skript ist. Zu diesem Zweck haben wir einige Änderungen in derselben Datei oben vorgenommen, nämlich „compare. Sch“. Im geänderten Code haben wir gerade die Werte und den Operator „-eq“ durch „-ne“ geändert, wie unten gezeigt:

echo „Geben Sie eine Eingabe-Ganzzahl Variable1 ein:“
Variable1 lesen
echo „Geben Sie eine ganzzahlige Eingabevariable2 ein:“
Variable2 lesen
Wenn [ $variable1 -ne $variable2 ];
Dann
echo „Beide ganzzahlige Eingabevariablen sind nicht gleich …“
anders
echo „Beide ganzzahlige Eingabevariablen sind gleich …“
fi

Hier ist die gewünschte Ausgabe, die im Bild unten gezeigt wird:

Geben Sie eine ganzzahlige Eingabevariable1 ein:
50
Geben Sie eine ganzzahlige Eingabevariable2 ein:
100
Beide Eingabe-Integer-Variablen sind nicht gleich …

Beispiel 02: Verwendung der Operatoren „-gt“ und „-lt“.

Dies ist eine weitere Veranschaulichung, wie die Vergleichsoperatoren „-gt“ und „-lt“ im Code verwendet werden. Wir werden bewerten, ob „Variable1“ in der Instanz größer oder kleiner als „Variable2“ ist.

1: Größer als „-gt“-Operator

Zuerst bestimmen wir, ob Variable 1 Variable 2 überschreitet oder nicht. Der Codeausschnitt, der zeigt, wie der „-gt“-Operator implementiert wird, ist unten dargestellt.

echo „Geben Sie eine Eingabe-Ganzzahl Variable1 ein:“
Variable1 lesen
echo „Geben Sie eine ganzzahlige Eingabevariable2 ein:“
Variable2 lesen
Wenn [ $variable1 -gt $variable2 ];
Dann
echo „Die Variable1 ist größer als Variable2…“
anders
echo „Die Variable1 ist nicht größer als Variable2 …“
fi

Als wir das Skript ausführten, zeigte das Ergebnis, dass „Variable1“ größer als „Variable2“ war.

Geben Sie eine ganzzahlige Eingabevariable1 ein:
98
Geben Sie eine ganzzahlige Eingabevariable2 ein:
96
Die Variable1 ist größer als Variable2…

2: Kleiner als „-lt“-Operator

Mithilfe des „-lt“-Operators im Bash-Scripting ermitteln wir nun, ob „Variable1“ kleiner als „Variable2“ ist oder nicht.

echo „Geben Sie eine Eingabe-Ganzzahl Variable1 ein:“
Variable1 lesen
echo „Geben Sie eine ganzzahlige Eingabevariable2 ein:“
Variable2 lesen
Wenn [ $variable1 -lt $variable2 ];
Dann
echo „Die Variable1 ist kleiner als Variable2…“
anders
echo „Die Variable1 ist nicht kleiner als Variable2 …“
fi

Betrachten Sie die Ergebnisse des oben angegebenen Beispiels:

Geben Sie eine ganzzahlige Eingabevariable1 ein:
96
Geben Sie eine ganzzahlige Eingabevariable2 ein:
98
Die Variable1 ist kleiner als Variable2…

Beispiel 03: Verwendung der Operatoren „-ge“ und „-le“.

In diesem Beispiel prüfen wir, ob Variable1 größer oder kleiner als Variable2 ist und ob sie möglicherweise gleich Variable2 ist oder nicht.

1: Größer als oder gleich „-ge“-Operator:

Wir werden den Operator „-ge“ verwenden, um zu prüfen, ob die „Variable1“ einen größeren Wert oder einen gleichen Wert wie die „Variable2“ enthält.

echo „Geben Sie eine Eingabe-Ganzzahl Variable1 ein:“
Variable1 lesen
echo „Geben Sie eine ganzzahlige Eingabevariable2 ein:“
Variable2 lesen
Wenn [ $variable1 -ge $variable2 ];
Dann
echo „Die Variable1 ist größer oder gleich Variable2 …“
anders
echo „Die Variable1 ist nicht größer oder nicht gleich Variable2 …“
fi

Durch das Schreiben von „bash Compare.sh“ erhalten wir die gewünschte Ausgabe:

Geben Sie eine ganzzahlige Eingabevariable1 ein:
25
Geben Sie eine ganzzahlige Eingabevariable2 ein:
24
Die Variable1 ist größer oder gleich Variable2…

2: Kleiner oder gleich „-le“-Operator

Jetzt verwenden wir den Operator „-le“ im vorhandenen Code, um zu prüfen, ob der Wert von „Variable1“ kleiner oder gleich dem Wert von „Variable2“ ist.

echo „Geben Sie eine Eingabe-Ganzzahl Variable1 ein:“
Variable1 lesen
echo „Geben Sie eine ganzzahlige Eingabevariable2 ein:“
Variable2 lesen
Wenn [ $variable1 -le $variable2 ];
Dann
echo „Die Variable1 ist kleiner oder gleich Variable2 …“
anders
echo „Die Variable1 ist nicht kleiner oder nicht gleich Variable2 …“
fi

Sehen Sie sich die Ausgabe im Linux-Terminal an:

Geben Sie eine ganzzahlige Eingabevariable1 ein:
11
Geben Sie eine ganzzahlige Eingabevariable2 ein:
11
Die Variable1 ist kleiner oder gleich Variable2…

Weg 02: Doppelte eckige Klammern

Der „[]]” Doppelte Klammern erledigen die gleiche Funktion wie einfache eckige Klammern in Bash. Aber im Gegenzug gibt die Bash nichts außer 0 zurück, wenn die Bedingung wahr ist, und 1, wenn die Bedingung falsch ist. Jetzt werden wir verschiedene Beispiele für die zweite Möglichkeit der Verwendung des Vergleichsoperators im Bash-Skripting implementieren.

Beispiel 01: Verwendung der Operatoren (<) und (>).

Das Folgende ist eine spezifizierte Situation einer doppelten quadratischen Verstrebung, in der wir die Indikatoren „>“ und „<“ anwenden, um zu bestimmen, ob der Wert von „Variable1“ größer oder kleiner als der Parameter „Variable2“ ist. Dafür haben wir zunächst eine völlig neue Datei für die Technik der doppelten eckigen Klammern erstellt:

linux@linux-VirtualBox:~$ touch double.sh

Wir haben den Nano-Befehl verwendet, um den Nano-Editor aufzurufen:

linux@linux-VirtualBox:~$ nano double.sh

Unser aktueller Editor ist der Nano-Editor. Beginnen wir mit dem Schreiben von Code:

1: Kleiner als „<“-Operator

Hier ist das Beispiel von „kleiner als“, wo wir zwei Variablen haben und die Werte vom Benutzer erhalten, also haben wir „lesen“ verwendet. Dann führen wir die Kleiner-als-Operation für diese Variablen durch.

echo „Geben Sie eine Eingabe-Ganzzahl Variable1 ein:“
Variable1 lesen
echo „Geben Sie eine ganzzahlige Eingabevariable2 ein:“
Variable2 lesen
if (( $variable1 < $variable2 ));
Dann
echo „Die Bedingung ist wahr“
echo „Return 0“
anders
echo „Die Bedingung ist falsch“
echo „Return 1“
fi

Um das Skript zu kompilieren, haben wir den Befehl „bash“ zusammen mit dem Dateinamen verwendet:

linux@linux-VirtualBox:~$ bash double.sh

Hier ist die Ausgabe:

Geben Sie eine ganzzahlige Eingabevariable1 ein:
76
Geben Sie eine ganzzahlige Eingabevariable2 ein:
102
Die Bedingung ist wahr
Gibt 0 zurück

2: Größer als „>“-Operator

Jetzt verwenden wir den nächsten Operator, das Symbol „>“, um zu bestimmen, ob der Wert „Variable1“ größer ist oder nicht. Wie Sie sehen können, gilt in diesem Fall:

echo „Geben Sie eine Eingabe-Ganzzahl Variable1 ein:“
Variable1 lesen
echo „Geben Sie eine ganzzahlige Eingabevariable2 ein:“
Variable2 lesen
if (( $variable1 > $variable2 ));
Dann
echo „Die Bedingung ist wahr“
echo „Return 0“
anders
echo „Die Bedingung ist falsch“
echo „Return 1“
fi

Nach der Ausführung des Skripts im Linux-Terminal haben wir diese Ausgabe erhalten:

Geben Sie eine ganzzahlige Eingabevariable1 ein:
27
Geben Sie eine ganzzahlige Eingabevariable2 ein:
22
Die Bedingung ist wahr
Gibt 0 zurück

Beispiel 02: Verwendung der Operatoren (<=) und (>=).

Nachdem das zweite Beispiel nun implementiert wurde, können wir den Bash-Skriptoperator „>=“ verwenden, um zu bestimmen, ob der Wert von Variable1 kleiner oder gleich dem Wert von Variable2 ist.

1: Kleiner oder gleich „<=“-Operator

In diesem Fall prüfen wir den kleineren oder gleichen Wert in diesen Variablen und drucken die Ausgabe aus.

echo „Geben Sie eine Eingabe-Ganzzahl Variable1 ein:“
Variable1 lesen
echo „Geben Sie eine ganzzahlige Eingabevariable2 ein:“
Variable2 lesen
if (( $variable1 <= $variable2 ));
Dann
echo „Die Bedingung ist wahr“
echo „Return 0“
anders
echo „Die Bedingung ist falsch“
echo „Return 1“
fi

Das Ergebnis der oben genannten Demonstration wird im folgenden Screenshot angezeigt:

Geben Sie eine ganzzahlige Eingabevariable1 ein:
65
Geben Sie eine ganzzahlige Eingabevariable2 ein:
65
Die Bedingung ist wahr
Gibt 0 zurück

2: Größer als oder gleich „>=“-Operator

Im folgenden Beispiel wird der „>=“-Operator aus dem Bash-Scripting verwendet, um zu überprüfen, ob „D1“ und „D2“ Werte haben, die größer oder gleich sind.

echo „Geben Sie eine Eingabe-Ganzzahl Variable1 ein:“
Variable1 lesen
echo „Geben Sie eine ganzzahlige Eingabevariable2 ein:“
Variable2 lesen
if (( $variable1 >= $variable2 ));
Dann
echo „Die Bedingung ist wahr“
echo „Return 0“
anders
echo „Die Bedingung ist falsch“
echo „Return 1“
fi

Befolgen Sie die beabsichtigten Ergebnisse des Beispiels:

Geben Sie eine ganzzahlige Eingabevariable1 ein:
44
Geben Sie eine ganzzahlige Eingabevariable2 ein:
44
Die Bedingung ist wahr
Gibt 0 zurück

Abschluss

Wir haben gelernt, wie man das Bash-Skript zum Vergleichen von Ganzzahlen verwendet. Darüber hinaus haben wir erläutert, wie Sie mehrere Operatoren in einem Bash-Skript verwenden. Mit ausführlichen Erklärungen haben wir zahlreiche Beispiele dieser Operatoren im Bash-Scripting erstellt.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen