Connect with us

Wie man

Der Anfängerleitfaden für Shell Scripting 4: Bedingungen und Wenn-Dann-Anweisungen

Der Anfängerleitfaden für Shell Scripting 4: Bedingungen und Wenn-Dann-Anweisungen

Wir haben in unserem Leitfaden zum Shell-Skripting so viele Grundlagen behandelt, dass Sie sich beim Experimentieren wohl fühlen sollten. In der Ausgabe dieser Woche werden wir uns mit einigen der interessanteren Dinge befassen, wie Bedingungen und „Wenn-dann“-Anweisungen.

Was sind Bedingungen?

In der Alltagssprache sagen wir, dass Bedingungen Voraussetzungen sind, die erfüllt sein müssen, damit etwas passiert. Damit mein Laptop eine Verbindung zum Internet herstellen kann, müssen mehrere Bedingungen erfüllt sein, z. B. ein ISP, das Modem und/oder der Router eingeschaltet, mein Laptop usw. Es ist ziemlich einfach, und wenn überhaupt dieser Anforderungen nicht erfüllt sind, tritt das Ergebnis – mein Laptop verbindet sich mit dem Internet – nicht auf.

Ähnlich funktionieren die Bedingungen im Bereich der Informatik. Wir können testen, ob ein String mit einem anderen String übereinstimmt, ob er nicht mit einem anderen String übereinstimmt oder ob er überhaupt existiert. Ebenso können wir numerische Argumente testen, um zu sehen, ob ein Argument größer, kleiner oder gleich einem anderen ist. Damit etwas passiert, nachdem die Testbedingungen erfüllt sind, verwenden wir „Wenn-Dann“-Anweisungen. Ihr Format ist ziemlich einfach.

wenn ZUSTAND
dann
Befehl1
Befehl2

kommandieren
fi

Wenn-Anweisungen

Lassen Sie uns ein schnelles kleines Testskript ausführen, oder?

wenn Test $1 -gt $2
dann
echo „$1 ist größer als $2“
fi

test gt

Sie werden feststellen, dass das Skript nur dann den folgenden Befehl ausführt, wenn diese Bedingung wahr ist. Andernfalls wird die „if“-Anweisung beendet. Wenn nach der „if“-Anweisung Befehle stehen, werden diese wie gewohnt ausgeführt. Ich habe die folgende Zeile am Ende unseres obigen Skripts hinzugefügt, um dies zu veranschaulichen:

echo „Dies kommt nach der if-Anweisung“

Kommandoposten-wenn

Hier sind einige andere numerische Operatoren, die Sie vielleicht ausprobieren möchten:

  • -eq: gleich
  • -ne: ungleich
  • -lt: weniger als
  • -le: kleiner oder gleich
  • -gt: größer als
  • -ge: größer oder gleich

Testen von Strings

Wenn wir nun die erste Zeile unseres Skripts wie folgt ändern:

wenn Test $1 = $2

dann prüft die Bedingung, ob die beiden gleich sind. Hier gibt es jedoch einen Haken!! Die Verwendung eines Gleichheitszeichens (=) vergleicht zwei Zeichenfolgen und keine Zahlen. Wenn Sie Zahlen vergleichen möchten, müssen Sie den Operator „-eq“ ähnlich wie oben mit „-gt“ verwenden.

Strings vergleichen

Nehmen wir nun eine weitere Änderung vor:

wenn Test $1 != $2

Strings falsch vergleichen

Das Einfügen des Ausrufezeichens (!) dient als „nicht“-Modifikator. Das heißt, es führt den folgenden Befehl nur aus, wenn die beiden Zeichenfolgen nicht übereinstimmen.

Hier ist eine Liste mit weiteren string-basierten Tests, die Sie verwenden können:

  • string: Wenn nur ein Argument verwendet wird, wird getestet, ob der String nicht leer (null) oder in irgendeiner Weise definiert ist
  • -n String: Dies testet, ob der String nicht leer und definiert ist
  • -z Zeichenfolge: Dies wird testen, ob die Zeichenfolge leer ist und so definiert ist

Was sonst, wenn?

Ich gebe zu, dieser Abschnittstitel war definitiv ein schlechtes Wortspiel. Okay, wir wissen, wie man einen Befehl ausführt, wenn ein Test wahr ist, aber was ist, wenn wir einen anderen Befehl ausführen möchten, wenn er falsch ist? Wir können die beiden leicht zusammenfügen, indem wir unseren „Wenn-Dann“-Aussagen einen Abschnitt hinzufügen – ein „sonst“!

wenn ZUSTAND
dann
Befehl1
Befehl2

kommandieren
anders
Befehl1
Befehl2

kommandieren
fi

Lassen Sie uns ein einfaches Skript zusammenstellen.

Es gibt alles mit der richtigen Einrückung. Wenn Sie genau hinschauen, werden Sie feststellen, dass wir eckige Klammern ( [ and ] ) anstelle des Testbefehls. Sie sind für unsere Zwecke funktional äquivalent, und aus verschiedenen Gründen werden Sie die eckigen Klammern viel häufiger sehen, sodass wir sie von nun an verwenden werden.

So sieht die Ausgabe aus:

ifthense-Test

So einfach ist das!

Was mache ich jetzt?

Da Sie nun wissen, wie man „if-then-else“-Anweisungen verwendet, können Sie Skripte ausführen, die Tests durchführen können. Sie können beispielsweise ein Skript ausführen, das einen md5-Hash einer Datei berechnet und ihn dann mit dem in einer Datei heruntergeladenen Vergleich vergleicht, um zu sehen, ob sie übereinstimmen.

Für einige Bonuspunkte können Sie ein Skript erstellen, das eine „for“-Schleife hat, aber Testbedingungen verwendet, anstatt Zeilen aus einer Listendatei zu lesen…

Wir kommen zu einigen der interessanteren Teile in unserem Anfängerhandbuch zum Shell-Skripting. Wenn Sie die vorherigen Lektionen verpasst haben, finden Sie hier eine kurze Liste für Sie:

  1. Die Grundlagen der Shell-Skripterstellung
  2. For-Schleifen verwenden
  3. Weitere grundlegende Befehle
  4. Was sind die Unterschiede zwischen Linux-Shells?
  5. So verwenden Sie grundlegende reguläre Ausdrücke

Wenn Sie Skripte erstellt oder verwendet haben, die Testbedingungen, if-then-else-Anweisungen und „for“-Schleifen verwenden, teilen Sie uns dies in den Kommentaren mit!

Continue Reading
Click to comment

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tendencia