HOWTO · Bash

Bash Bereiche

Dies demonstriert das Durchlaufen eines Bereichs von Ganzzahlen in der Bash mit einer for-Schleife und einer while-Schleife.

Auf dieser Seite

Dieses Tutorial demonstriert das Durchlaufen eines Bereichs von Ganzzahlen in der Bash mit der for-Schleife und der while-Schleife.

Verwenden Sie die for-Schleife, um die Reichweite in Bash . zu erhalten

Das folgende Bash-Skript verwendet eine for-Schleife mit geschweifter Erweiterung, um einen Zahlenbereich zu durchlaufen. Die Zahlen in den geschweiften Klammern werden sequentiell inkrementiert.

#!/bin/bash

printf "Print Numbers from 0 to 5\n"
for x in {0..5}
do
printf "number:$x\n"
done

Ausgabe:

Print Numbers from 0 to 5
number:0
number:1
number:2
number:3
number:4
number:5

Verwenden die for-Schleife mit Drei-Ausdruck, um die Reichweite in Bash zu erhalten

Das Skript verwendet eine for-Schleife mit drei Ausdrücken wie in der Sprache C. Dabei ist expr1 die Initialisierung, expr2 ist die Bedingung und expr3 ist das Inkrement.

In unserem Fall wird x auf 0 initialisiert, x wird geprüft, ob es kleiner oder gleich 5 ist, und zuletzt wird x um 1 erhöht.

#!/bin/bash

max=5
printf "Print Numbers from 0 to $max\n"
for ((x=0;x<=max;x++)); do
    printf "number: $x\n"
done

Ausgabe:

Print Numbers from 0 to 5
number: 0
number: 1
number: 2
number: 3
number: 4
number: 5

Verwenden die while-Schleife, um Reichweite in Bash zu erhalten

Dies verwendet eine while-Schleife mit einem binären Vergleichsoperator -le, der für den arithmetischen Wertvergleich verwendet wird.

In unserem Fall wird die while-Schleife ausgeführt, solange x kleiner oder gleich der Variablen $max ist.

#!/bin/bash

x=0
max=5
printf "Print numbers from $x to $max\n"
while [ $x -le $max ]; do
    printf "number: $x\n"
    x=$(($x+1))
done

Ausgabe:

Print numbers from 0 to 5
number: 0
number: 1
number: 2
number: 3
number: 4
number: 5

Verwenden eval, um die Reichweite in Bash zu erhalten

eval ist ein Bash-Befehl, der verwendet wird, um Argumente als Shell-Befehle auszuführen. Im Skript unten generieren die geschweiften Klammern Zahlen von 0 bis $max in Schritten von 1, die for-Schleife durchläuft diese Zahlen und der Befehl printf zeigt sie an.

#!/bin/bash

max=4

printf "Print Numbers from 0 to $max\n"
for x in `eval echo {0..$max}`
do
printf "number: $x\n"
done

Ausgabe:

Print Numbers from 0 to 4
number: 0
number: 1
number: 2
number: 3
number: 4

Verwenden seq, um Reichweite in Bash zu erhalten

seq ist ein Bash-Befehl, der verwendet wird, um Zahlen von start bis Ende in Inkrement-Schritten zu generieren.

In unserem Fall generiert seq Zahlen von x bis $max in Schritten von 1. Die for-Schleife durchläuft diese Zahlen und der Befehl printf wird verwendet, um sie anzuzeigen.

x=0
max=5

printf "Print numbers from $x to $max\n"
for x in $(seq $x $max)
do
printf "number: $x\n"
done

Ausgabe:

Print numbers from 0 to 5
number: 0
number: 1
number: 2
number: 3
number: 4
number: 5