Geekflare wird von unserem Publikum unterstützt. Es kann sein, dass wir durch den Kauf von Links auf dieser Seite Affiliate-Provisionen verdienen.
Unter Entwicklung Zuletzt aktualisiert: September 24, 2023
Weitergeben:
Invicti Web Application Security Scanner - die einzige Lösung, die eine automatische Überprüfung von Schwachstellen mit Proof-Based Scanning™ ermöglicht.

Die For-Schleife ist ein wesentlicher Bestandteil jeder Programmiersprache. Mit ihr können Programme durch eine bestimmte Anzahl von Elementen iterieren.

Wenn Sie zum Beispiel eine Liste oder ein Array mit 'n' Elementen durchgehen wollen, verwenden Sie eine for-Schleife. Lassen Sie uns ein einfaches Beispiel nehmen:

1Violett
2Indigo
3Blau
4Grün
Regenbogen-Tabelle

Um eine Aktion auszuführen oder die Elemente in der obigen Tabelle zu durchlaufen, benötigen wir eine For-Schleife.

Bash For-Schleife

In einem Bash-Skript sieht die For Loop-Syntax wie folgt aus:

#!/bin/bash

for VAR in 1 2 3 4 5.....N

do

 ACTION 1

 ACTION 2

.....

done

Die For-Schleife der Bash ist recht einfach. Die erste Zeile #!/bin/bash zeigt an, dass der Code ein Bash-Skript ist. VAR steht für die temporäre Variable, die für die Schleife verwendet wird. N gibt die maximale Anzahl der Iterationen an. 'do' und 'done' starten bzw. stoppen die Schleife. Actions sind die Befehle, die innerhalb der Schleife ausgeführt werden.

Wir können Bash For Loop mit verschiedenen Variablen wie Listen, Strings, Ganzzahlen und Arrays ausführen. Dieser Artikel zeigt einige gängige Beispiele für die Bash For Loop.

Sie können diese Programme direkt in der Bash-Befehlszeile ausführen oder sie in einer Datei speichern und die Datei mit dem Bash-Befehl filename.sh ausführen.

Statische Liste lesen

Betrachten Sie die folgende Liste - rainbowColorList = Violett, Indigo, Blau, Grün, Gelb, Orange, Rot

Wir können die obige String-Liste mit Hilfe der Bash For Loop wie folgt ausgeben:

#! /bin/sh

# Definieren Sie die Liste

rainbowColorList=Violet,Indigo,Blue,Green,Yellow,Orange,Red

# Komma-Trennzeichenmuster mit //,/

for colors in ${rainbowColorList//,/ }

do

 echo $colors

done

Die Ausgabe ist die Liste der Elemente in einer neuen Zeile.

#Output

Violett
Indigo
Blau
Grün
Gelb
Orange
Rot

Ein Array lesen

Die Syntax für die Deklaration eines Arrays ist anders. Verwenden Sie Klammern für jedes Element (String).

rainbowArray=("Violett" "Indigo" "Blau" "Grün" "Gelb" "Orange" "Rot")

for colors in "${rainbowArray[@]}"; do

 echo "Ich mag $Farben"

done

mit '@' wird durch jedes Element im Array iteriert.

#Output

Ich mag Violett
Ich mag Indigo
Ich mag Blau
Ich mag Grün
Ich mag Gelb
Ich mag Orange
Ich mag Rot

Wir können auch die For-Schleife verwenden, um die Indizes und die Array-Elemente zu drucken.

#Drucken mit Index

rainbowArray=("Violett" "Indigo" "Blau" "Grün" "Gelb" "Orange" "Rot")

for i in "${!rainbowArray[@]}";

do

 echo "Farbe bei Index " $i " : " "${rainbowArray[$i]}"

 i=$((i 1));

done
#Output

Farbe bei Index 0 : Violett
Farbe bei Index 1 : Indigo
Farbe bei Index 2 : Blau
Farbe bei Index 3 : Grün
Farbe bei Index 4 : Gelb
Farbe bei Index 5 : Orange
Farbe bei Index 6 : Rot

Beachten Sie, dass wir '!' in der Schleife verwenden, um den Elementindex zu erhalten.

Zahlenbereich iterieren

Wir können die Bash For-Schleife verwenden, um über einen Zahlenbereich zu iterieren.

#Iterieren über Zahlenbereich

echo "Countdown beginnt..."

for N in {10..0}

do

 echo "$N"

done

Das '..' zeigt einen Zahlenbereich an.

#Output

10
9
8
7
6
5
4
3
2
1
0

Wir können auch Zählnummern überspringen, indem wir den Bereich angeben.

Im folgenden Beispiel wird die Zahl 3 übersprungen.

#Iterieren mit Überspringen der Zählung

echo "Der Countdown beginnt..."

for N in {30..0..3}

do

 echo "$N"

done

Das obige Programm beginnt mit 30 als erste Zahl und zählt bis 0. Der letzte Parameter in der for-Schleife '3' gibt die Anzahl der Überspringungen an.

#Ausgabe

30
27
24
21
18
15
12
9
6
3
0

Zeichenketten und Zeichen

Mit der Bash For Loop können wir eine Menge interessanter String-Operationen durchführen.

Zum Beispiel können wir jedes Zeichen einer Zeichenkette lesen, indem wir den Operator 'seq' in einer For-Schleife verwenden:

#Zeichen eines Strings lesen

myword="welcome"

for i in $(seq 1 ${#myword})

do

 echo "${myword:i-1:1}"

done

Beachten Sie, dass der 'seq' mit 1 beginnen sollte, um das erste Zeichen zuerst zu erhalten.

#Ausgabe

W
e
l
c
o
m
e

Wir können auch die durch Leerzeichen getrennten Zeichenketten einzeln ausgeben:

#Lesen Sie jedes Wort aus einem Satz

mysentence="Willkommen bei GeekFlare. One stop hub for all techies"

for word in $mysentence; do

 echo $word

done
#Output

Willkommen 
bei 
GeekFlare. 
Ein 
stop 
hub 
für 
alle 
techies

Ausdrücke

Ähnlich wie in jeder anderen Programmiersprache, z.B. Java, können wir Ausdrücke innerhalb einer Bash For-Schleife platzieren.

for (( var=10; var>=0; var-- ))

do 

 echo "Counting down...$var"

done
#Ausgabe

Abwärtszählen...10
Abwärtszählen...9
Abwärtszählen...8
Abwärtszählen...7
Abwärtszählen...6
Abwärtszählen...5
Abwärtszählen...4
Abwärtszählen...3
Abwärtszählen...2
Abwärtszählen...1
Abwärtszählen...0

Lesen von Befehlszeilenargumenten

Um Befehlszeilenargumente zu lesen, verwenden wir den Befehl 'lesen'. Im folgenden Beispiel erhalten wir einige Zahlen vom Benutzer und geben die Summe mit Hilfe der Bash For-Schleife aus. Wir verwenden die Variable total, um die Zwischen- und Endsumme oder die Summe der Zahlen zu speichern.

read -a array -p "Geben Sie die Zahlen ein, die Sie addieren möchten:"

total=0

for i in ${array[@]}; do

 let total =$i

done

echo "Summe der Zahlen ist: $total"

Die Ausgabe ist:

#Output

Geben Sie die Zahlen ein, die Sie addieren möchten: 3 4 66
Die Summe der Zahlen ist: 73

Finden von ungeraden und geraden Zahlen

Um gerade und ungerade Zahlen zwischen 1 und 10 (oder eine beliebige Zahl N) zu ermitteln, sollten wir die if-Bedingung zusammen mit der Bash for-Schleife verwenden. Um eine gerade Zahl zu ermitteln, teilen wir die Zahl durch 2 und wenn der Rest 0 ist, dann wird sie als gerade eingestuft, ansonsten als ungerade.

#Deklarieren Sie die Liste, in der die geraden und ungeraden Zahlen sortiert und gespeichert werden

evennum=""

oddnum=""

for (( i=1; i<=10; i ))

do

remainder=$(( $i % 2 ))

if [ $remainder -eq 0 ]; then

 evennum="$evennum $i "

else

 oddnum="$oddnum $i "

fi

done

echo "Gerade Zahlen sind: "$evennum

echo "Ungerade Zahlen sind: "$oddnum

Beachten Sie, dass wir im obigen Beispiel den Bereich mit 10 angeben. Wir können diese Zahl ändern, um gerade und ungerade Zahlen in einem beliebigen Bereich zu erhalten. Sie können auch versuchen, die Zahl vom Benutzer zu lesen, indem Sie den Befehl 'read' verwenden, den wir im vorherigen Abschnitt gelernt haben.

#Ausgabe

Gerade Zahlen sind: 2 4 6 8 10
Ungerade Zahlen sind: 1 3 5 7 9

Unendliche Schleife

Eine unendliche Schleife ist eine Schleife, die nicht aufhört, ausgeführt zu werden, und das Programm muss mit Strg C zum Anhalten gezwungen werden. Wir können eine unendliche Schleife ganz einfach mit dem Operator '; ;' innerhalb der for-Schleife erstellen:

for (( ; ; ))

do

 echo "Willkommen bei Geekflare"

done
#Output

Willkommen bei Geekflare
Willkommen bei Geekflare
Willkommen bei Geekflare
Willkommen bei Geekflare
Willkommen bei Geekflare
Willkommen bei Geekflare
Willkommen bei Geekflare
Willkommen bei Geekflare
Willkommen bei Geekflare
Willkommen bei Geekflare
^C
$

Pause-Anweisung

Break-Anweisungen werden verwendet, um die Schleife zu verlassen, wenn eine 'if'-Bedingung erfüllt ist.

for color in Violet Indigo Blue Green Yellow Orange Red

do

 if [[ "$color" == 'Green' ]]; then

 break

 fi

 echo "Ich habe nach Grün gesucht, die Farbe ist jetzt $color"

done

echo "Ich habe meine Farbe $color gefunden"

In diesem Beispiel versuchen wir, die Farbe Grün zu finden. Die For-Schleife durchläuft jede Farbe, und sobald die grüne Farbe gefunden wurde, verlässt das Programm die Schleife aufgrund der Break-Anweisung.

#Output

Suche nach Grün, die Farbe ist jetzt Violett
Suche nach Grün, die Farbe ist jetzt Indigo
Suche nach Grün, die Farbe ist jetzt Blau
Ich habe meine Farbe Grün gefunden

Weiter-Anweisung

Continue wird verwendet, um die aktuelle Schleife zu überspringen und zur nächsten Schleife überzugehen, wenn eine bestimmte Bedingung erfüllt ist. Wenn Sie z.B. die Farbe 'Grün' aus unserem vorherigen Programm nicht ausgeben möchten, können wir continue eingeben, und alle anderen Farben außer Grün werden angezeigt.

for color in Violet Indigo Blue Green Yellow Orange Red

do

 if [[ "$color" == 'Green' ]]; then

 continue

 fi

 echo "$color"

done
#Output

Violett
Indigo
Blau
Gelb
Orange
Rot

Letzte Worte

Wir haben die gebräuchlichsten Verwendungen einer Bash For-Schleife mit Strings, Ganzzahlen, Arrays und Listen behandelt. Wenn Sie Linux lernen, aber einen Windows 10 Rechner haben, können Sie die WSL-Funktion nutzen und Linux auf Ihrem Windows Rechner installieren.

Anschließend können Sie das Linux-Terminal auf ähnliche Weise wie CMD verwenden.

Als nächstes können Sie sich ansehen, wie Sie Bash-Skripte mit Python ausführen können.

  • Schmetterlings-Gedanken
    Autor
Dank an unsere Sponsoren
Weitere gute Lektüre zum Thema Entwicklung
Energie für Ihr Unternehmen
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti nutzt das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu überprüfen und innerhalb weniger Stunden verwertbare Ergebnisse zu erzielen.
    Versuchen Sie Invicti
  • Web Scraping, Residential Proxy, Proxy Manager, Web Unlocker, Search Engine Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie Brightdata
  • Monday.com ist ein All-in-One-Betriebssystem, mit dem Sie Projekte, Aufgaben, Arbeit, Vertrieb, CRM, Arbeitsabläufe und vieles mehr verwalten können.
    Versuch Montag
  • Intruder ist ein Online-Schwachstellen-Scanner, der Schwachstellen in Ihrer Infrastruktur aufspürt, um kostspielige Datenschutzverletzungen zu vermeiden.
    Versuchen Sie Intruder