Puede usar split + glob (lo que sucede cuando deja una expansión sin comillas en contextos de lista). Se interpone en nuestro camino la mayor parte del tiempo, sería una pena no usarlo cuando realmente lo necesitamos:
IFS=,
set -o noglob
ARR=($VAR) # split+glob with glob disabled, and split using , as delimiter
Eso es un poco menos complicado que escribir un archivo temporal y luego invocarlo readarray
como en el readarray <<< "$string"
enfoque (también tenga en cuenta que readarray -d
necesita una versión muy reciente de bash
).
Tenga en cuenta que a pesar de S
in IFS
(que significa separador ), eso funciona de la misma manera readarray
que a,,b,
se divide en "a"
, ""
y "b"
solo.
Para un operador de división real, puede usar zsh
en su lugar:
ARR=("${(@s:,:)VAR}")
(las @
comillas dobles y para preservar los elementos vacíos).
"What is the meaning of the latest $ symbol?"