Es ist gut zu beachten, dass die Syntax und die Funktionalität für Skripte für Bash oder ZSH Shell ähnlich sind, da ZSH auf Bash aufgebaut ist, ähnlich ist.
Wenn Anweisung
Die grundlegendste Möglichkeit, eine bedingte Logik in einem Shell -Skript zu implementieren, besteht darin, eine IF -Anweisung zu verwenden. Die allgemeine Syntax für eine IF -Aussage in ZSH ist unten:
#!/usr/bin/zsh
Wenn Zustand
Dann
// Befehle ausführen
fi
Um eine IF -Anweisung zu implementieren, rufen wir zunächst das IF -Keyword an. Wir bestehen dann den bedingten Ausdruck, um zu bewerten. Der bedingte Ausdruck muss einen booleschen Wert zurückgeben.
Nachdem der bedingte Ausdruck in den damaligen Schlüsselwort und FI -Block in diesen Blöcken gekommen ist, übergeben wir die Befehle, die ausgeführt werden sollen, wenn der bedingte Ausdruck an true bewertet wird.
Wenn der übergebene bedingte Ausdruck an einem booleschen Falsch bewertet wird, wird der Block der Befehle im damaligen FI -Block ignoriert und die bedingten Ausgänge.
Obwohl nicht erforderlich, wird empfohlen, Ihre Codeblöcke für Lesbarkeit und Wartung einzurichten.
Betrachten Sie das Beispiel für die folgende Anweisung:
Berühren Sie Bedingungen.sh && vim Conditionals.Sch
#!/usr/bin/zsh
if [[100 -Gt 50]]
Dann
echo "100 ist größer als 50"
fi
Speichern Sie die Datei und schließen Sie.
Lassen Sie die Datei als nächstes mithilfe des CHMOD -Befehls ausführbar als:
CHMOD +X Conditionals.Sch
Schließlich führen Sie das Skript als:
./Bedingungen.Sch
Das Skript wird den If -Block ausgeführt und prüft, ob 100 mehr als 50 sind. Wenn wahr, wird der Echo -Befehl und beenden ausgeführt.
Unten ist ein Beispielausgang:
$ ./bedingt.Sch
100 ist größer als 50
Wenn… sonst Aussage
Eine weiterentwickelte Version der IF -Anweisung ist die Anweisung if… sonst. Es funktioniert wie die IF -Anweisung, fügt jedoch einen Griff hinzu, wenn der bedingte Ausdruck zu False bewertet wird.
Unten finden Sie die allgemeine Syntax für die Anweisung IF… sonst:
#!/usr/bin/zsh
Wenn bedingt
Dann
// Befehle zum Ausführen, wenn wahr
anders
// Befehle zum Ausführen, wenn falsch
fi
Wie aus dem obigen Beispiel hervorgeht, wird der Block zwischen damals und sonst. Wenn dies jedoch falsch ist, wird der elsee Block ausgeführt.
Betrachten Sie das unten gezeigte Beispiel:
#!/usr/bin/zsh
echo -n "Geben Sie eine Nummer ein:"
Lesen Sie num
if [[$ num -gt 50]]
Dann
echo "$ num ist größer als 50"
anders
echo "$ num ist nicht größer als 50"
fi
Im Beispiel -Skript bitten wir den Benutzer, eine Nummer einzugeben. Wenn die Zahl größer als 50 ist, wiederholen wir, dass die Zahl größer als 50 ist. Wenn falsch, wiedergeben wir die Zahl nicht mehr als 50.
Unten ist ein Beispielausgang:
$ ./bedingt.Sch
Geben Sie eine Nummer ein: 10
10 ist nicht größer als 50
$ ./bedingt.Sch
Geben Sie eine Nummer ein: 80
80 ist größer als 50
Wenn ... elif ... sonst Aussagen
In einigen Fällen möchten Sie möglicherweise mehrere Bedingungen in einem Block testen. Um eine solche Logik zu implementieren, können wir die Anweisung IF… ELIF… sonst verwenden.
In einer if… elif… sonst addieren wir mehrere bedingte Ausdrücke, bei denen nur eine Bedingung zu true bewertet wird. Wenn die erste Bedingung wahr ist, führen Sie ihren Block aus; Wenn nicht, überprüfen Sie die zweite und fahren Sie fort, bis alle Bedingungen überprüft sind.
Die Syntax für den iF… Elif -Block ist:
#!/usr/bin/zsh
Wenn Bedingung1
Dann
// Block 1
Elif Condition2
Dann
// Block2
elif Conditionn
Dann
// Blockn
anders
// Wenn alle Bedingungen auf False bewertet werden
fi
Die Bedingungen werden nacheinander bewertet. Wenn man true bewertet, wird der Codeblock ausgeführt. Wenn jedoch keiner der Bedingungen wahr ist, wird der sonstige Block ausgeführt.
Der sonstige Block ist optional, wird jedoch empfohlen, eine Situation zu behandeln, in der kein Zustand wahr ist.
Hier ist ein Beispielskript:
Wenn [[$ num -eq 10]]]
Dann
echo "number = $ num"
ELIF [[$ num -eq 20]]
Dann
echo "number = $ num"
Elif [[$ num -eq 30]]
Dann
echo "number = $ num"
anders
echo "Nummer ist weder 10, 20 noch 30"
echo "number = $ num"
fi
Das obige Skript implementiert einen ELIF -Block, wenn die eingegebene Nummer entweder 10, 20 oder 30 beträgt. Wenn nicht, können die sonst in der folgenden Ausführung angezeigten Bedingung die Bedingung verarbeiten:
./bedingt.Sch
Geben Sie eine Nummer ein: 10
Zahl = 10
Geben Sie eine Nummer ein: 20
Zahl = 20
Geben Sie eine Nummer ein: 30
Zahl = 30
Geben Sie eine Nummer ein: 51
Die Nummer ist weder 10, 20 noch 30
Zahl = 51
Sie können so viele ELIF -Aussagen haben, wie Sie es für richtig halten. Wenn jedoch solche Szenarien auftreten, sollten Sie einen Fallblock implementieren.
Bedingte Operatoren
In den obigen Beispielen haben wir bedingte Operatoren wie -eq (gleich) und -Gt (größer als) implementiert. ZSH unterstützt andere bedingte Betreiber wie:
Die oben genannten Beispiele für bedingte Ausdrücke, die Sie in Ihren ZSH -Skripten verwenden können. Schauen Sie sich die Dokumentation an, um mehr zu erfahren.
Abschluss
In diesem Tutorial wurde gezeigt, wie Sie die bedingte Logik in unseren ZSH -Skripten verwenden, indem Sie bei Anweisungen mit Anweisungen verfügen. Fühlen Sie sich frei, die ZSH -Skriptdokumentation zu lesen, um mehr zu erfahren.
Vielen Dank für das Lesen!