Come posso iterare su un intervallo di numeri in Bash quando l'intervallo è dato da una variabile?
So di poterlo fare (chiamato "espressione di sequenza" nella documentazione di Bash ):
for i in {1..5}; do echo $i; done
Che dà:
1
2
3
4
5
Tuttavia, come posso sostituire uno dei due endpoint con una variabile? Questo non funziona:
END=5
for i in {1..$END}; do echo $i; done
Che stampa:
{1..5}
for i in {01..10}; do echo $i; done
darebbe numeri come 01, 02, 03, ..., 10
.
myarray=('a' 'b' 'c'); for i in ${!myarray[@]}; do echo $i; done
(notare il punto esclamativo). È più specifico della domanda originale, ma potrebbe aiutare. Vedi le espansioni dei parametri bash
{jpg,png,gif}
che non sono direttamente affrontate qui, sebbene la risposta sia identica. Vedi Espansione del controvento con variabile? [duplicato] che è contrassegnato come duplicato di questo.