32 Stimmen

Iterieren durch einen Bereich von Ints in ksh?

Wie kann ich durch einen einfachen Bereich von ints mit einer for-Schleife in ksh iterieren?

Mein Skript zum Beispiel macht derzeit Folgendes...

for i in 1 2 3 4 5 6 7
do
   #stuff
done

...aber ich würde den Bereich gerne auf über 7 erweitern. Gibt es eine bessere Syntax?

47voto

martin clayton Punkte 74309

Geschwungene Klammern?

for i in {1..7}
do
   #stuff
done

15voto

Lance Rushing Punkte 7340

While-Schleife?

while [[ $i -lt 1000 ]] ; do
    # stuff
   (( i += 1 ))
done

11voto

Dennis Williamson Punkte 322329

ksh93 , Bash und zsh verstehen alle C-ähnliche for Schleifen-Syntax:

for ((i=1; i<=9; i++))
do
    echo $i
done

Leider, während ksh und zsh verstehen die geschweifte Klammerbereichssyntax mit Konstanten und Variablen, Bash behandelt nur Konstanten (einschließlich Bash 4).

11voto

Colin Punkte 111

Unter OpenBSD, verwenden Sie jot:

for i in `jot 10`; do echo $i ; done;

6voto

cheko Punkte 61

Verwendung von seq :

for i in $(seq 1 10)
do 
  echo $i
done

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X