¿Cómo itero sobre un rango de números en Bash cuando el rango viene dado por una variable?
Sé que puedo hacer esto (llamado "expresión de secuencia" en la documentación de Bash ):
for i in {1..5}; do echo $i; done
Lo que da:
1
2
3
4
5
Sin embargo, ¿cómo puedo reemplazar cualquiera de los puntos finales del rango con una variable? Esto no funciona
END=5
for i in {1..$END}; do echo $i; done
Que imprime:
{1..5}
for i in {01..10}; do echo $i; done
daría números como 01, 02, 03, ..., 10
.
myarray=('a' 'b' 'c'); for i in ${!myarray[@]}; do echo $i; done
(observe el signo de exclamación). Es más específico que la pregunta original, pero podría ayudar. Ver expansiones de parámetros bash
{jpg,png,gif}
que no se abordan directamente aquí, aunque la respuesta será idéntica. Ver expansión de llaves con variable? [duplicado] que está marcado como un duplicado de este.