Bash'te değişkenler tarafından tanımlanan bir sayı aralığı üzerinde nasıl yineleme yapabilirim?

Aralık bir değişken tarafından verildiğinde Bash'te bir sayı aralığı üzerinde nasıl yineleme yapabilirim?

Bunu yapabileceğimi biliyorum (Bash belgelerinde "sequence expression" olarak adlandırılır):

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

Ki bu da:

1
2
3
4
5

Ancak, aralık uç noktalarından birini bir değişkenle nasıl değiştirebilirim? Bu işe yaramıyor:

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

Hangi baskılar:

{1..5}

Çözüm
for i in $(seq 1 $END); do echo $i; done

düzenleme: seqi diğer yöntemlere tercih ediyorum çünkü gerçekten hatırlayabiliyorum ;)

Yorumlar (11)

Kullanabilirsiniz

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

Bu bash içinde iyi çalışır:

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