English English French French Spanish Spanish German German
Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

10 Bash-For-Loop-Beispiele mit Erläuterungen

Beispiele für Bash-For-Loops
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Die For-Schleife ist ein integraler Bestandteil jeder Programmiersprache. Es ermöglicht Programmen, eine bestimmte Anzahl von Elementen zu durchlaufen.

Wenn Sie beispielsweise eine Liste oder ein Array von 'n' Elementen durchlaufen möchten, verwenden Sie eine for-Schleife. Nehmen wir ein einfaches Beispiel:

1Veilchen
2Indigoblau
3Blau
4Grün
Regenbogen-Tabelle

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

Bash für Schleife

In einem Bash-Skript lautet die For-Schleifen-Syntax wie folgt:

#!/bin/bash

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

do

 ACTION 1

 ACTION 2

 .....

done

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

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

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

Reading Static List

Betrachten Sie die folgende Liste – rainbowColorList = Violet, Indigo, Blue, Green, Yellow, Orange, Red

Wir können die obige Zeichenfolgenliste mit der Bash For-Schleife wie folgt drucken:

#! /bin/sh

# Define the list

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

# Comma separator pattern using //,/

for colors in ${rainbowColorList//,/ }

do

   echo $colors

done

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

#Output

Violet
Indigo
Blue
Green
Yellow
Orange
Red

Reading an Array

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

rainbowArray=("Violet" "Indigo" "Blue" "Green" "Yellow" "Orange" "Red")

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

     echo "I like $colors"

done

'@' wird verwendet, um durch jedes Element im Array zu iterieren.

#Output

I like Violet
I like Indigo
I like Blue
I like Green
I like Yellow
I like Orange
I like Red

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

#Printing with index

rainbowArray=("Violet" "Indigo" "Blue" "Green" "Yellow" "Orange" "Red")

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

do

  echo "Color at index " $i " : " "${rainbowArray[$i]}"

  i=$((i+1));

done
#Output

Color at index 0 : Violet
Color at index 1 : Indigo
Color at index 2 : Blue
Color at index 3 : Green
Color at index 4 : Yellow
Color at index 5 : Orange
Color at index 6 : Red

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

Iterating Range of Numbers

Wir können Bash For Loop verwenden, um über einen Bereich von Zahlen zu iterieren.

#iterating over range of numbers

echo "Countdown begins..."

for N in {10..0}

do

    echo "$N"

done

Das '..' gibt einen Zahlenbereich an.

#Output

10
9
8
7
6
5
4
3
2
1
0

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

Im folgenden Beispiel überspringen wir das Zählen um 3.

#iterating with skip counting

echo "Countdown begins..."

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

do

    echo "$N"

done

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

#Output

30
27
24
21
18
15
12
9
6
3
0

Strings and Characters

Mit Bash For Loop können wir viele interessante Zeichenfolgenoperationen durchführen.

Beispielsweise können wir jedes Zeichen einer Zeichenfolge lesen, indem wir den Operator „seq“ in einer For-Schleife verwenden:

#read characters of a string

myword="welcome"

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

do

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

done

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

#Output

W
e
l
c
o
m
e

Wir können die Zeichenfolgen auch einzeln durch Leerzeichen getrennt drucken:

#read each word from a sentence

mysentence="Welcome to GeekFlare. One stop hub for all techies"

for word in $mysentence; do

    echo $word

done
#Output

Welcome 
to 
GeekFlare. 
One 
stop 
hub 
for 
all 
techies

Expressions

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

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

do 

  echo "Counting down...$var"

done
#Output

Counting down...10
Counting down...9
Counting down...8
Counting down...7
Counting down...6
Counting down...5
Counting down...4
Counting down...3
Counting down...2
Counting down...1
Counting down...0

Reading Command-Line Arguments

Um aus Befehlszeilenargumenten zu lesen, verwenden wir den Befehl „read“. Im folgenden Beispiel erhalten wir einige Zahlen vom Benutzer und drucken die Summe mit Bash For Loop. Wir verwenden die Variable total, um die Zwischen- und Endsumme oder die Summe der Zahlen zu speichern.

read -a array -p "Enter the numbers you want to add:"

total=0

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

  let total+=$i

done

echo "Sum of the numbers is: $total"

Die Ausgabe ist:

#Output

Enter the numbers you want to add: 3 4 66
Sum of the numbers is: 73

Finding Odd-Even Numbers

Um ungerade und gerade Zahlen zwischen 1 und 10 (oder eine beliebige Zahl N) zu finden, sollten wir die if-Bedingung zusammen mit Bash for Loop verwenden. Um eine gerade Zahl zu bestimmen, teilen wir die Zahl durch 2 und wenn der Rest 0 ist, kategorisieren wir sie als gerade, sonst ungerade.

#declare the list where the even and odd numbers will be sorted and kept

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 "Even numbers are: "$evennum

echo "Odd numbers are: "$oddnum

Beachten Sie, dass wir im obigen Beispiel den Bereich mit 10 angeben. Wir können diese Zahl ändern, um gerade und ungerade Zahlen zwischen beliebigen Bereichen zu erhalten. Sie können auch versuchen, die Nummer des Benutzers zu lesen, indem Sie den Befehl „read“ verwenden, den wir im vorherigen Abschnitt gelernt haben.

#Output

Even numbers are: 2 4 6 8 10
Odd numbers are: 1 3 5 7 9

Infinite Loop

Infinity oder Endlosschleife ist eine Schleife, die nicht anhält, und das Programm muss mit Strg+C zum Anhalten gezwungen werden. Wir können ganz einfach eine Endlosschleife erstellen, indem wir das '; ;' Operator innerhalb der for-Schleife:

for (( ; ; ))

do

  echo "Welcome to Geekflare"

done
#Output

Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
^C
$

Break Statement

Break-Anweisungen werden verwendet, um die Schleife zu unterbrechen, 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 "Searching for Green, the color now is $color"

done

echo "I found my color $color"

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 ist, verlässt das Programm die Schleife aufgrund der break-Anweisung.

#Output

Searching for Green, the color now is Violet
Searching for Green, the color now is Indigo
Searching for Green, the color now is Blue
I found my color Green

Continue Statement

Weiter wird verwendet, um die aktuelle Schleife zu überspringen und basierend auf einer bestimmten Bedingung zur nächsten zu wechseln. Wenn Sie beispielsweise die Farbe „Grün“ aus unserem vorherigen Programm nicht drucken möchten, können Sie fortfahren, 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

Violet
Indigo
Blue
Yellow
Orange
Red

Final Words

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

Sie können das Linux-Terminal dann ähnlich wie CMD verwenden.

Als nächstes können Sie auschecken wie man Bash-Skripte mit Python ausführt.

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Entwicklung
Macht Ihr Geschäft
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder