Kuidas itereerida Bashis muutujatega määratletud numbrite vahemiku üle?

Kuidas itereerida Bashis numbrite vahemiku üle, kui vahemik on antud muutujaga?

Ma tean, et ma saan seda teha (nimetatakse "jada väljendus" Bash dokumentatsioon):

 for i in {1..5}; do echo $i; done

Mis annab:

1
2
3
4
5

Kuid kuidas ma saan asendada kummagi vahemiku lõpp-punkti muutujaga? See ei'tse ei tööta:

END=5
for i in {1..$END}; do echo $i; done

Mis prindib:

{1..5}

Lahendus
for i in $(seq 1 $END); do echo $i; done

edit: ma eelistan seq teiste meetodite asemel, sest ma saan seda tegelikult meeles pidada ;)

Kommentaarid (11)

Võite kasutada

for i in $(seq $END); do echo $i; done
Kommentaarid (8)

See töötab hästi bashis:

END=5
i=1 ; while [[ $i -le $END ]] ; do
    echo $i
    ((i = i + 1))
done
Kommentaarid (7)