for-loop

De flesta vet säkerligen hur en for-loop är tänkt att fungera. Vi vill kunna upprepa en viss kod n antal gånger, alternativt loopa igenom innehållet i en datastruktur.

for…in

#!/usr/bin/env bash
#
# An example script on for...in

# for...in range
for value in 1 2 3 4 5
do
    echo "$value"
done

# for...in range, ({START..END})
for value in {1..5}
do
    echo "$value"
done

# for...in range with steps, ({START..END..INCREMENT})
for value in {1..10..2}
do
    echo "$value"
done

Ett alternativ är att använda arithmetic expansion, (( )). Det ger möjligheten att skriva en mer C-liknande konstruktion. Notera att det även fungerar för villkoren i if-satsen.

#!/usr/bin/env bash
#
# An example script on traditional for-loop

for (( i=0; i<10; i++ ))
do
    if (( "$i" % 2 == 0 ))
    then
        echo "$i is even"
    else
        echo "$i is odd"
    fi    
done

#Revision history

  • 2019-03-08: (A, lew) Första versionen.

Document source.