Bash Bereiche

Fumbani Banda 30 Januar 2023
  1. Verwenden Sie die for-Schleife, um die Reichweite in Bash . zu erhalten
  2. Verwenden die for-Schleife mit Drei-Ausdruck, um die Reichweite in Bash zu erhalten
  3. Verwenden die while-Schleife, um Reichweite in Bash zu erhalten
  4. Verwenden eval, um die Reichweite in Bash zu erhalten
  5. Verwenden seq, um Reichweite in Bash zu erhalten
Bash Bereiche

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
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

Verwandter Artikel - Bash Loop