Bash deklarativ definieren eine Liste, um auf zu schleifen
In Bash mache ich häufig Skripte, in denen ich eine Liste von Zeichenfolgen durchlaufe, die ich definiere.
z.B.
for a in 1 2 3 4; do echo $a; done
Ich möchte jedoch die Liste (vor der Schleife, um sie sauber zu halten) so definieren, dass sie Leerzeichen enthält und keine separate Datei enthält:
z.B. (ABER DAS WIRKT NICHT)
read -r VAR <<HERE
list item 1
list item 2
list item 3
...
HERE
for a in $VAR; do echo $a; done
Die erwartete Ausgabe oben (ich möchte):
list item 1
list item 2
list item 3
etc...
Aber Sie werden bekommen:
list
item
1
Ich könnte Arrays verwenden, müsste aber jedes Element im Array indizieren (BEARBEITEN Lesen Sie die Antworten unten, da Sie Arrays anhängen können. Ich wusste nicht, dass Sie das können).
Wie definieren andere Listen deklarativ in Bash, ohne separate Dateien zu verwenden?
Entschuldigung, ich habe vergessen zu erwähnen, dass ich die Liste im definieren möchteAnfang der Datei vor der for-Schleifenlogik