print matrices leer for ejemplos array and arrays string bash shell

arrays - matrices - Lectura de una cadena delimitada en una matriz en Bash



matrices bash shell (4)

En: arr=( $line ) . La "división" viene asociada con "glob".
Los comodines ( * ? Y [] ) se expandirán a nombres de archivos coincidentes.

La solución correcta es solo un poco más compleja:

IFS='' '' read -a arr <<< "$line"

Sin problemas de globbing; el carácter dividido se establece en $IFS , variables citadas.

Tengo una variable que contiene una cadena delimitada por espacios:

line="1 1.50 string"

Quiero dividir esa cadena con espacio como delimitador y almacenar el resultado en una matriz, de modo que lo siguiente:

echo ${arr[0]} echo ${arr[1]} echo ${arr[2]}

salidas

1 1.50 string

En algún lugar encontré una solución que no funciona:

arr=$(echo ${line})

Si ejecuto las declaraciones de eco anteriores después de esto, obtengo:

1 1.50 string [empty line] [empty line]

También intenté

IFS=" " arr=$(echo ${line})

con el mismo resultado ¿Puede alguien ayudar, por favor?


Prueba esto:

arr=(`echo ${line}`);


arr=($line)

o

read -a arr <<< $line


line="1 1.50 string" arr=$( $line | tr " " "/n") for x in $arr do echo "> [$x]" done