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.
# Hauptschleifewä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++)); doEcho "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
- Bash Endlosschleife
- Bash-Skript-Benutzereingaben
- Bash-Funktion, die Array zurückgibt
# etwas
getan
Das folgende Skript druckt beispielsweise fünfmal „Hallo Welt“.
für i in 1… 5; tunEcho "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/*; tunecho $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++)); dofor((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# etwas
getan
Im folgenden Beispiel druckt das Skript fünfmal „hello world“.
Anzahl=1while [ $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=1num_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 [# 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=1bis [ $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++)); doecho $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.
Viel Spaß beim Rechnen!