For-loops (Bash): verschil tussen versies
Naar navigatie springen
Naar zoeken springen
Regel 71: | Regel 71: | ||
... | ... | ||
done | done | ||
+ | </pre> | ||
+ | |||
+ | == Step == | ||
+ | |||
+ | Er is een step-functionaliteit. Bv.: | ||
+ | |||
+ | <pre> | ||
+ | for i in `seq 0 2 10`; do echo $i; done | ||
</pre> | </pre> | ||
Versie van 25 jul 2022 16:01
Er zijn verschillende manieren om een for-loop te doen. Een bloemlezing:
Ranges
Gebruik van een for-loop met een range:
declare -A tr # tr[1,1]="Eén"; tr[1,2]="Jeden" tr[2,1]="Twee"; tr[2,2]="Dwa" for i in {1..2} do echo ${tr[$i,1]}" - " ${tr[$i,2]} done
Dit werkt prima met een vaste range, maar niet met een variabele range. Dit werkt bv. niet:
START=1 END=5 for i in {$START..$END} do echo "$i" done
Three-parameter loops - C-style loops
Three-parameter loops oftewel C-style loops kunnen een oplossing zijn voor bv. range-loops met variabele range:
Het for-keyword kent drie argumenten:
- Startwaarde
- Conditie
- Waardeverandering.
Voorbeeld:
i=1 for ((i; i<=10; i++)) do echo $i done
Uitvoer:
1 2 3 4 5 6 7 8 9 10
Maw.: De increment vindt plaats na de loop.
Ander voorbeeld:
((i=0; < $number_of_threads; i++)) do ... done
Step
Er is een step-functionaliteit. Bv.:
for i in `seq 0 2 10`; do echo $i; done