Eu tenho uma função (não criada por mim) que gera uma série de strings entre aspas:
command <args>
“Foo”
“FooBar”
“Foo Bar”
“FooBar/Foo Bar”
Quando tento atribuí-lo a um array (Bash; BSD/Mac), em vez de 4 elementos, obtenho 7. Por exemplo, para ${array[2]}
eu deveria obter “Foo Bar”
, mas em vez disso, obtenho ”Foo
com o próximo elemento sendo Bar”
. Qualquer elemento sem o espaço funciona corretamente (ou seja ${array[0]}
= “Foo”)
Como pode atribuir cada um desses elementos entre aspas incluindo o espaço para uma matriz que os elementos são separados por espaços (?) próprios?
No momento, estou pensando em usar sed/awk para “retirar” as aspas, mas acho que deve haver uma maneira melhor e mais eficiente.
Atualmente, estou atribuindo a saída do comando (parece exatamente com a saída acima, incluindo as aspas) a uma variável temporária e, em seguida, atribuindo-a a uma matriz.
_tempvar=“$(command <args>)”
declare -a _array=(${_tempvar})