Comment puis-je itérer sur une plage de nombres dans Bash lorsque la plage est donnée par une variable?
Je sais que je peux le faire (appelé "expression de séquence" dans la documentation de Bash ):
for i in {1..5}; do echo $i; done
Qui donne:
1
2
3
4
5
Pourtant, comment puis-je remplacer l'un des points de terminaison de plage par une variable? Cela ne fonctionne pas:
END=5
for i in {1..$END}; do echo $i; done
Qui imprime:
{1..5}
for i in {01..10}; do echo $i; done
donnerait des nombres comme 01, 02, 03, ..., 10
.
myarray=('a' 'b' 'c'); for i in ${!myarray[@]}; do echo $i; done
(notez le point d'exclamation). C'est plus précis que la question d'origine, mais cela pourrait aider. Voir les extensions de paramètres bash
{jpg,png,gif}
qui ne sont pas directement traitées ici, bien que la réponse soit identique. Voir Expansion Brace avec variable? [duplicate] qui est marqué comme un double de celui-ci.