Bash definindo declarativamente uma lista para fazer um loop

No bash eu freqüentemente faço scripts onde eu faço loop sobre uma lista de strings que eu defino.

por exemplo.

for a in 1 2 3 4; do echo $a; done

No entanto, gostaria de definir a lista (antes do loop para mantê-lo limpo) para que contenha espaços e sem um arquivo separado:

por exemplo. (Mas isso não vai funcionar)

read -r VAR <<HERE
list item 1
list item 2
list item 3
...
HERE

for a in $VAR; do echo $a; done

A saída esperada acima (eu gostaria):

list item 1
list item 2
list item 3
etc...

Mas você vai conseguir:

list
item
1

Eu poderia usar matrizes, mas eu teria que indexar cada elemento na matriz (EDIT ler as respostas abaixo, como você pode acrescentar aos arrays .. Eu não sabia que você poderia).

Como os outros definem declarativamente as listas no bash com o uso de arquivos separados?

Desculpe eu esqueci de mencionar que eu quero definir a lista noparte superior do arquivo antes da lógica do loop for

questionAnswers(5)

yourAnswerToTheQuestion