BASH-Programmierung

Verschachtelte Schleife in Bash-Skriptbeispielen

Verschachtelte Schleife in Bash-Skriptbeispielen

In der Programmierung oder Skripterstellung ist die Schleife eines der grundlegendsten und mächtigsten Konzepte. Eine Schleife führt bestimmte Aufgaben aus, bis die angegebenen Bedingungen erfüllt sind. Jede Programmier- oder Skriptsprache hat unterschiedliche Möglichkeiten, das Konzept zu implementieren.

Sehen Sie sich in diesem Handbuch die verschachtelte Schleife beim Bash-Skripting an.

Verschachtelte Schleife

Eine Schleife führt per Definition bestimmte Aufgaben aus, bis die Bedingungen erfüllt sind. Was ist, wenn die Aufgabe das Ausführen einer Schleife beinhaltet?? Dies ist das Konzept einer verschachtelten Schleife. Eine Schleife in einer Schleife.

Dies ist die Grundstruktur einer Schleife.

während (Bedingung)
# etwas

Hier führt die while-Schleife die im Block deklarierten Aufgaben so lange aus, wie die Bedingung erfüllt ist. Bei einer verschachtelten while-Schleife würde die Struktur so aussehen look.

# Hauptschleife
während (Bedingung)
# verschachtelte Schleife
während(Bedingung)
# etwas

Theoretisch können verschachtelte Schleifen unendlich tief gehen. In vielen Situationen können verschachtelte Schleifen die perfekte Lösung sein.

Schleife im Bash-Skript

Bash ist eine mächtige Skriptsprache. Es gibt verschiedene Loop-Strukturen in der Bash. Die beliebtesten sind for-, while- und until-Schleifen. Wenn Sie bereits mit C/C++-Programmierung vertraut sind, wird die Syntax auf jeden Fall ziemlich ähnlich aussehen.

Für Schleifen

Die For-Schleife ist eine der gebräuchlichsten und vielseitigsten Formularausgaben usw. Die Struktur von Schleifen beim Bash-Scripting. Die Struktur ähnelt auch stark der for-Schleife in C/C++.

Die Struktur der for-Schleife in der bash ist wie folgt:.

for ((initialisieren ; Bedingung ; inkrementieren)); tun
# etwas
getan

Der Aufbau ist sehr selbsterklärend. Der Initialisierungsabschnitt ist nicht obligatorisch. Die Bedingung und das Inkrement haben jedoch höhere Priorität.

Lass es uns in die Tat umsetzen. Hier ist ein sehr vereinfachtes Bash-Skript, das eine for-Schleife implementiert.

für ((i = 0 ; i < 5 ; i++)); do
Echo "Hallo Welt"
getan

Es ist auch möglich, list/range als Schleifenbedingung zu verwenden. Es ist besonders nützlich, wenn Sie mit einer Liste von Dateien, Nummernbereichen, Arrays, Befehlsausgaben usw. arbeiten. Die Struktur sieht ungefähr so ​​aus.

für Artikel in ; tun
# etwas
getan

Das folgende Skript druckt beispielsweise fünfmal „Hallo Welt“.

für i in 1… 5; tun
Echo "Hallo Welt"
getan

Was ist, wenn wir mit dem Inhalt eines Verzeichnisses arbeiten müssen?? Im folgenden Beispiel druckt das Skript alle Dateien im Verzeichnis /usr/bin.

für i in /usr/bin/*; tun
echo $i
getan

Was tun wir nun, um eine verschachtelte for-Schleife zu haben?? Es ist nur eine für eine Schleife in einer anderen. Hier ist eine verschachtelte for-Schleife mit dem vorherigen Beispiel.

für ((i = 0 ; i < 3 ; i++)); do
for((j = 0 ; j < 2 ; j++)); do
Echo "Hallo Welt"
getan
getan

Die Ausgabe wird 6-mal „Hallo Welt“ sein. Die äußere Schleife wird dreimal ausgeführt, die innere Schleife zweimal.

Während Schleifen

Die while-Schleife ist eine weitere beliebte und intuitive Schleife, die im Bash-Skripting verfügbar ist. Die Syntax sieht so aus.

während ; tun
# etwas
getan

Im folgenden Beispiel druckt das Skript fünfmal „hello world“.

Anzahl=1
while [ $num -le 5 ]; tun
Echo "Hallo Welt"
Anzahl=$(($num+1))
getan

Wie würde es aussehen, eine verschachtelte while-Schleife zu haben?? Hier ist ein einfaches Beispiel.

num_a=1
num_b=1
while [ $num_a -le 5 ]; tun
while [ $num_b -le 5 ]; tun
Echo "Hallo Welt"
num_b=$(($num_b+1))
getan
num_a=$(($num_a+1))
getan

Bis Schleifen

Wenn Sie über Programmierkenntnisse in C/C++ verfügen, sind Sie mit der do-while-Schleife vertraut familiar. Leider hat bash so etwas nicht. Bis die Schleife jedoch auf ähnliche Weise funktioniert. Die Syntax sieht auch ziemlich gleich aus.

bis um [ ]; tun
# etwas
getan

Der Unterschied zwischen der Schleife und der Schleife ist die Testbedingung. Solange die Testbedingung wahr ist, läuft eine while-Schleife weiter. Eine until-Schleife läuft jedoch nur weiter, wenn die Bedingung falsch ist.

Hier ist ein kurzes Beispiel für die while-Schleife. Es druckt das Einmaleins von 2.

num_a=1
bis [ $num_a -gt 10 ]; tun
echo $(($num_a * 2))
num_a=$(($num_a+1))
getan

Schleifenpause

In bestimmten Situationen, wenn bestimmte Bedingungen erfüllt sind, wird das Ausführen des Rests der Schleife überflüssig. Schleifenunterbrechungen sind eine interessante Funktion, die es ermöglicht, unter einer bestimmten Bedingung aus der Schleife auszubrechen. Dies ist für verschachtelte Schleifen wichtiger, denn je höher die Schleifen, desto mehr Ressourcenverbrauch und Ineffizienzeff.

Hier wird die folgende for-Schleife nicht mehr ausgeführt, sobald sie die Bedingung erreicht.

für ((i=1;i<=100;i++)); do
echo $i
if [ $i -eq 10 ]; dann
Unterbrechung
fi
getan

Sehen Sie sich an, wie Sie eine while-Schleife unterbrechen können, um eine ausführliche Erklärung und Demonstration von Schleifenunterbrechungen zu erhalten.

Abschließende Gedanken

Eine verschachtelte Schleife ist ein einfaches und leistungsstarkes Konzept, das es zu verstehen und zu implementieren ist. Hoffentlich konnte dieser Leitfaden das Konzept beschreiben und demonstrieren.

Interessiert an weiteren Bash-Scripting-Anleitungen? Sehen Sie sich die folgenden Anleitungen an.

  • Bash Endlosschleife
  • Bash-Skript-Benutzereingaben
  • Bash-Funktion, die Array zurückgibt

Viel Spaß beim Rechnen!

So erfassen und streamen Sie Ihre Gaming-Sitzung unter Linux
In der Vergangenheit galt das Spielen von Spielen nur als Hobby, aber mit der Zeit verzeichnete die Spieleindustrie ein enormes Wachstum in Bezug auf ...
Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...