Wie iteriere ich in Bash über einen Zahlenbereich, wenn der Bereich durch eine Variable angegeben wird?
Ich weiß, dass ich dies tun kann (in der Bash- Dokumentation als "Sequenzausdruck" bezeichnet ):
for i in {1..5}; do echo $i; done
Welches gibt:
1
2
3
4
5
Wie kann ich jedoch einen der Bereichsendpunkte durch eine Variable ersetzen? Das funktioniert nicht:
END=5
for i in {1..$END}; do echo $i; done
Welche Drucke:
{1..5}
for i in {01..10}; do echo $i; done
würde Zahlen wie geben 01, 02, 03, ..., 10
.
myarray=('a' 'b' 'c'); for i in ${!myarray[@]}; do echo $i; done
(Beachten Sie das Ausrufezeichen). Es ist spezifischer als die ursprüngliche Frage, könnte aber helfen. Siehe Bash-Parametererweiterungen
{jpg,png,gif}
die hier nicht direkt angesprochen werden, obwohl die Antwort identisch ist. Siehe Klammererweiterung mit Variable? [Duplikat], das als Duplikat von diesem markiert ist.