Wenn und sonst Bedingungen im ZSH -Skript

Wenn und sonst Bedingungen im ZSH -Skript
Die Entscheidungsfindung, auch als Konditionalität bezeichnet, ist ein grundlegender Baustein in der Programmierung. In diesem Tutorial werden wir diskutieren, wie Sie Bedingungen in unseren Skripten mithilfe der ZSH -Shell implementieren können.

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:

  • a -eq b - Wahr, wenn a numerisch gleich B ist
  • a -Gt b - Wahr, wenn a numerisch größer als b ist
  • a -lt b - Wahr, wenn a numerisch weniger als b ist
  • a -ne b - Wahr ist a ist nicht numerisch gleich B
  • a -le b - Wahr, wenn a numerisch weniger oder gleich B ist
  • a -ge b - Wahr, wenn a numerisch größer oder gleich B ist
  • A != b - Wahr, wenn die Zeichenfolge A nicht gleich der Zeichenfolge B ist
  • a = b - True, wenn String A gleich der Zeichenfolge B ist
  • -Z String - Wahr, wenn die Länge der Zeichenfolge Null ist
  • -n String - Wahr, wenn die Länge der Zeichenfolge ungleich Null ist
  • -eine Datei - Wahr, wenn die Datei existiert
  • -H Datei - Richtig, wenn die Datei existiert und ein symbolischer Link ist
  • -f Datei - Richtig, wenn die Datei existiert und eine reguläre Datei ist (keine Verzeichnis oder Sonderdatei)
  • -D Datei - Wahr, wenn die Datei existiert und ein Verzeichnis ist
  • -E-Datei - Wahr, wenn die Datei unabhängig vom Typ existiert
  • -r Datei - Richtig, wenn die Datei existiert und durch den aktuellen Prozess lesbar ist
  • -W Datei - Wahr, wenn die Datei existiert und nach dem aktuellen Prozess schriftlich ist
  • -x Datei - True, wenn die Datei existiert und durch den aktuellen Prozess ausführbar ist
  • -G -Datei - True, wenn die Datei existiert und ein SetGid -Bit -Set hat
  • -s Datei - True, wenn die Datei existiert und die Größe größer als Null ist
  • -u - Richtig, wenn die Datei existiert und ein SetUid -Bit festgelegt hat
  • -o Datei - Richtig, wenn die Datei existiert und der aktuellen ID gehört
  • ! Exp - Wahr, wenn der Ausdruck falsch ist
  • a && b - Wahr, wenn sowohl A als auch B wahr sind
  • A || B - Wahr, wenn entweder A oder B wahr ist

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!