Startseite » wie man » Das Einsteigerhandbuch für Shell-Scripting 4 Bedingungen und If-Then-Anweisungen

    Das Einsteigerhandbuch für Shell-Scripting 4 Bedingungen und If-Then-Anweisungen

    In unserem Leitfaden zum Shell-Scripting haben wir ausreichend über die Grundlagen berichtet, sodass Sie sich beim Experimentieren wohl fühlen sollten. In dieser Woche werden wir uns mit einigen der lustigsten Sachen befassen, wie Bedingungen und „Wenn-Dann“ -Anweisungen.

    Was sind Bedingungen??

    In der Alltagssprache sagen wir, dass Bedingungen Bedingungen sind, die erfüllt sein müssen, damit etwas eintreten kann. Damit mein Laptop eine Verbindung zum Internet herstellen kann, müssen einige Bedingungen erfüllt sein: ISP, Modem und / oder Router müssen eingeschaltet sein, mein Laptop muss eingeschaltet sein usw. Es ist ziemlich einfach, und wenn überhaupt Diese Anforderungen werden nicht erfüllt, das Ergebnis - mein Laptop wird nicht mit dem Internet verbunden - passiert nicht.

    Die Bedingungen im Bereich des Rechnens funktionieren ähnlich. Wir können testen, ob eine Zeichenfolge mit einer anderen Zeichenfolge übereinstimmt, ob sie nicht mit einer anderen Zeichenfolge übereinstimmt oder ob sie überhaupt existiert. In ähnlicher Weise können wir numerische Argumente testen, um zu sehen, ob einer größer oder kleiner ist als ein anderer. Um etwas zu erreichen, nachdem die Bedingungen des Tests erfüllt sind, verwenden wir „Wenn-Dann“ -Anweisungen. Ihr Format ist ziemlich einfach.

    wenn ZUSTAND
    dann
    Befehl1
    Befehl2

    commandn
    fi

    Wenn Aussagen

    Lassen Sie uns ein kurzes kleines Testskript ausführen?

    wenn test $ 1 -gt $ 2
    dann
    Echo "1 $ ist größer als 2 $"
    fi

    Sie werden feststellen, dass das Skript den folgenden Befehl nur ausführt, wenn diese Bedingung erfüllt ist. Andernfalls wird die if-Anweisung beendet. Wenn nach der if-Anweisung Befehle vorhanden sind, werden sie normal 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"

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

    • -eq: gleich
    • -ne: nicht gleich
    • -Es ist weniger als
    • -le: kleiner oder gleich
    • -gt: größer als
    • -ge: größer oder gleich

    Strings testen

    Wenn wir nun die erste Zeile unseres Skripts so ändern, dass es so ist:

    wenn test $ 1 = $ 2

    dann prüft die Bedingung, ob die beiden gleich sind. Es gibt hier 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.

    Nun nehmen wir eine weitere Modifikation vor:

    wenn test $ 1! = $ 2

    Das Einfügen des Ausrufezeichens (!) Fungiert als Modifikator "nicht". Das heißt, es wird nur der folgende Befehl ausgeführt, wenn die beiden Zeichenfolgen nicht übereinstimmen.

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

    • string: Wenn Sie nur ein Argument für sich selbst verwenden, wird geprüft, ob die Zeichenfolge nicht leer (null) oder nicht definiert ist
    • -n string: Hier wird geprüft, ob die Zeichenfolge nicht leer ist und definiert ist
    • -z-String: Dies prüft, ob der String leer ist und auf diese Weise definiert wird

    Was sonst??

    Ich gebe zu, der Titel der Sektion war definitiv ein schlechtes Wortspiel. Okay, wir wissen, wie ein Befehl ausgeführt wird, wenn ein Test wahr ist, aber was ist, wenn wir einen anderen Befehl ausführen möchten, wenn er falsch ist? Beides lässt sich leicht zusammenstellen, indem wir unseren Wenn-Dann-Anweisungen einen Abschnitt hinzufügen - ein "Sonstiges".!

    wenn ZUSTAND
    dann
    Befehl1
    Befehl2

    commandn
    sonst
    Befehl1
    Befehl2

    commandn
    fi

    Lassen Sie uns ein einfaches Skript zusammenstellen.

    Es gibt alles mit der richtigen Einrückung. Wenn Sie genau hinsehen, werden Sie feststellen, dass wir anstelle des Befehls test eckige Klammern ([und]) verwendet haben. Sie sind für unsere Zwecke funktional gleichwertig, und Sie sehen die eckigen Klammern aus verschiedenen Gründen viel wahrscheinlicher. Wir werden sie von nun an verwenden.

    So sieht die Ausgabe aus:

    So einfach ist das!

    Was mache ich jetzt?

    Nun, da Sie wissen, wie "if-then-else" -Anweisungen verwendet werden, können Sie Skripts ausführen, die Tests ausführen können. Sie können beispielsweise ein Skript ausführen, das einen MD5-Hash einer Datei berechnet und dann mit dem heruntergeladenen in einer Datei 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.


    In unserem Beginner's Guide zu Shell Scripting finden Sie einige der interessanteren Teile. Wenn Sie die vorherigen Lektionen verpasst haben, finden Sie hier eine kurze Liste zum Auschecken:

    1. Die Grundlagen von Shell Scripting
    2. Für Schleifen verwenden
    3. Weitere grundlegende Befehle
    4. Was sind die Unterschiede zwischen Linux-Shells??
    5. So verwenden Sie einfache reguläre Ausdrücke

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