Jak iterować w zakresie liczb w Bash, gdy zakres jest podany przez zmienną?
Wiem, że mogę to zrobić (zwane „wyrażeniem sekwencji” w dokumentacji Bash ):
for i in {1..5}; do echo $i; done
Co daje:
1
2
3
4
5
Jak jednak zastąpić jeden z punktów końcowych zakresu zmienną? To nie działa:
END=5
for i in {1..$END}; do echo $i; done
Które wydruki:
{1..5}
for i in {01..10}; do echo $i; done
dałoby liczby takie jak 01, 02, 03, ..., 10
.
myarray=('a' 'b' 'c'); for i in ${!myarray[@]}; do echo $i; done
(zwróć uwagę na wykrzyknik). To jest bardziej szczegółowe niż pierwotne pytanie, ale może pomóc. Zobacz rozszerzenia parametrów bash
{jpg,png,gif}
które nie są tutaj bezpośrednio omówione, chociaż odpowiedź będzie identyczna. Zobacz rozwinięcie nawiasu klamrowego ze zmienną? [duplikat], który jest oznaczony jako duplikat tego.