Primeiro erro (→ Q2): IFS='\n'
define IFS
para os dois caracteres \
e n
. Para definir IFS
para uma nova linha, use IFS=$'\n'
.
Segundo erro: para definir uma variável como um valor de matriz, você precisa de parênteses em torno dos elementos: array_of_lines=(foo bar)
.
Isso funcionaria:
IFS=$'\n' array_of_lines=($(my_command))
Mas eu recomendo não mexer com IFS
; em vez disso, use o sinalizador de expansão f
para dividir em novas linhas (→ Q1):
array_of_lines=("${(@f)$(my_command)}")
O valor de IFS
não importa lá. Eu suspeito que você usou um comando que divide em IFS
para imprimir $array_of_lines
em seus testes (→ Q3).