ZSH-Skriptlektion: Schleifentechniken und Iteration in Skripten

Zsh Skriptlektion Schleifentechniken Und Iteration In Skripten



ZSH ist ein leistungsstarker Shell-Interpreter mit einer breiten Oberfläche zur Anpassung. Eine der leistungsstärksten Funktionen von ZSH ist seine Skriptsprache, mit der Sie leistungsstarke Tools und Automatisierungsaufgaben erstellen können.

In diesem Tutorial werden wir die verschiedenen in ZSH verfügbaren Schleifen- und Iterationstechniken erkunden und einige Verwendungsmöglichkeiten dieser Techniken entdecken.







Schleifen und Iteratoren gehören zu den grundlegendsten Bausteinen jeder Programmiersprache. Wenn Sie Ihre Skriptfähigkeiten verbessern möchten, empfehlen wir Ihnen dringend, diese zu beherrschen.



Davon abgesehen, lasst uns eintauchen!



ZSH-Schleifen

Schleifen spielen eine entscheidende Rolle für funktionale und effiziente Programme und Skripte. Egal für welche Sprache Sie sich entscheiden, Sie werden zwangsläufig auf eine Art Schleifenkonstrukt stoßen. ZSH ist nicht anders.





Mithilfe von Schleifen können wir zulassen, dass ein Codeblock ausgeführt wird, bis eine bestimmte Bedingung erfüllt ist. Eine Hauptanwendung von Schleifen ist das Durchlaufen von Wörterbüchern und Listen oder sogar das Ausführen von Batch-Array-Vorgängen innerhalb eines Skripts.

ZSH-Looping-Konstrukte

1. „For“-Schleifen

Das erste und häufigste Schleifenkonstrukt in allen Programmiersprachen ist die „for“-Schleife. In ZSH ermöglicht uns eine „for“-Schleife, eine Folge von Elementen wie Zahlen, Wörtern oder Elementen in einem Array zu durchlaufen.



Eine Beispielsyntax lautet wie folgt:

für Artikel In Liste
Tun
# Schleifenkörper
Erledigt

In diesem Fall beginnen wir mit dem Schlüsselwort „for“, gefolgt vom einzelnen Element in der Sequenz. Anschließend stellen wir die Sequenz bereit, die wir iterieren möchten.

Als nächstes erstellen wir einen Schleifenkörper, der durch das Schlüsselwort „do“ gekennzeichnet ist. Hier stellen wir die Logik für die Schleife und alle Operationen bereit, die die Schleife ausführen soll.

Schließlich verwenden wir das Schlüsselwort „done“, um den Schleifenkörper zu schließen.

Beispiel 1:

Das folgende Beispiel zeigt, wie man eine „for“-Schleife verwendet, um eine Folge von Zahlen von 1 bis 5 zu durchlaufen:

für ich In { 1 .. 5 }
Tun
Echo 'Wiederholung $i '
Erledigt

Dadurch sollten die Zahlen von 1 bis 5 gedruckt werden: 1, 2, 3, 4, 5.

Beispiel 2:

Wir können auch eine „for“-Schleife verwenden, um die Elemente eines Arrays zu durchlaufen, wie im folgenden Beispielcode gezeigt:

# Deklarieren Sie ein Array
Datenbanken = ( „MySQL“ „PostgreSQL“ „SQLite“ „Redis“ „Elasticsearch“ )
# Durchlaufen Sie das Array mithilfe einer for-Schleife
für db In ' ${Datenbanken[@]} '
Tun
Echo 'Datenbank: $db '
Erledigt

Ausgabe:

Datenbank: MySQL
Datenbank: PostgreSQL
Datenbank: SQLite
Datenbank: Redis
Datenbank: Elasticsearch

2. „While“-Schleife

Das zweite Schleifenkonstrukt ist die „while“-Schleife. Wie der Name wahrscheinlich vermuten lässt, führt eine „while“-Schleife einen Codeblock aus, solange eine bestimmte Bedingung wahr ist.

Die Syntax für eine „while“-Schleife in ZSH lautet wie folgt:

während Zustand
Tun
# Schleifenkörper
Erledigt

In diesem Fall definieren wir die Bedingung, die wir auswerten möchten. Diese Bedingung muss einen booleschen Wert zurückgeben, entweder wahr oder falsch.

Beispiel:

Nehmen Sie zum Beispiel den folgenden Code, der zeigt, wie Sie eine einfache „for“-Schleife verwenden, um einen Countdown durchzuführen:

zählen = 5
während [ $count -gt 0 ]
Tun
Echo 'Countdown: $count '
( ( zählen-- ) )
Erledigt

Sie werden die Operation „Zählen“ bemerken. Dies wird verwendet, um sicherzustellen, dass der Wert in jeder Iteration um 1 verringert wird, was dazu führt, dass die Bedingung irgendwann wahr wird. Wenn Sie diese Bedingung nicht angeben, wird die Schleife weiter ausgeführt, da sie niemals „falsch“ wird. Dies wird auch als „Endlosschleife“ bezeichnet.

3. „Bis“-Schleife

Wir haben auch ein Schleifenkonstrukt, das als „bis“-Schleife bekannt ist. Eine „until“-Schleife ist einer „while“-Schleife sehr ähnlich. Aber im Gegensatz zu einer „for“-Schleife wird die Ausführung fortgesetzt, da die Bedingung falsch ist.

Es ist im Grunde eine Umkehrung einer „bis“-Schleife.

Die Syntax für die „until“-Schleife lautet wie folgt:

bis Zustand
Tun
# Schleifenkörper
Erledigt

Beispiel:

Das folgende Beispiel zeigt, wie man mit einer „until“-Schleife wartet, bis eine bestimmte Aufgabe abgeschlossen ist:

bis PS -P 5000 >/ Entwickler / Null
Tun
schlafen 1
Erledigt
Echo 'Verfahren $pid hat beendet.'

Die vorherige Schleife beendet den Prozess mit dem angegebenen Prozess. Es bleibt eine Sekunde lang im Ruhezustand, bis die Beendigung abgeschlossen ist.

  • Bedingungen

Wir können auch Kontrollstrukturen wie „if“, „elif“ und „else“ innerhalb einer bestimmten Schleife verwenden, um eine bedingtere Logik hinzuzufügen. Dadurch werden die Schleifen komplexer und erweiterbarer, um eine umfassendere und detailliertere Ausführung zu ermöglichen.

Beispiel:

Der folgende Codeblock zeigt, wie wir die bedingten Anweisungen in eine Schleife integrieren können, um eine Aufgabe auszuführen, wenn eine bestimmte Aufgabe wahr/falsch ist:

für Datei In * .txt
Tun
Wenn [ -F ' $datei ' ]
Dann
Echo „Datei wird bearbeitet: $datei '
# Führen Sie eine Aktion aus
anders
Echo „Nicht-Datei überspringen: $datei '
Sei
Erledigt

Wir können die Schleifen auch verwenden, um alle Dateien in einem bestimmten Verzeichnis zu verarbeiten, indem wir sie mit Glob-Mustern kombinieren, wie im folgenden Beispiel gezeigt:

für Datei In / Weg / Zu / Dateien /*
Tun
Echo „Datei wird bearbeitet: $datei '
# Führen Sie eine Aktion aus
Erledigt

4. Verschachtelte Schleifen

Verschachtelte Schleifen sind grundsätzlich Schleifen, die innerhalb einer anderen Schleife liegen. Wenn Sie rekursive und komplexere Operationen ausführen müssen, kann eine „verschachtelte“ Schleife Ihre Hilfe sein.

Seien Sie vorsichtig, wenn Sie „verschachtelte“ Schleifen verwenden, da die Möglichkeit besteht, dass entweder keine Aktion ausgeführt wird oder eine Aktion rekursiv und unendlich ausgeführt wird.

Ein Beispiel für eine „verschachtelte“ Schleife sieht wie folgt aus:

für ich In { 1 .. 3 }
Tun
für J In { A..C }
Tun
Echo ' $i $j '
Erledigt
Erledigt

Hier hast du es!

Abschluss

In dieser ZSH-Skriptlektion haben wir Ihnen alles beigebracht, was Sie wissen müssen, wenn es um die Arbeit mit Schleifen und Iteratoren in der ZSH-Skripterstellung geht. Wir haben Dinge wie „for“-Schleifen, „while“-Schleifen, „until“-Schleifen, „verschachtelte“ Schleifen, Bedingungen und mehr gelernt. Wir haben Ihnen auch gezeigt, wie Sie die Sequenzen iterieren und vieles mehr.