¿Dividir palabras de "leer" y almacenarlas en una matriz?

¿Dividir palabras de "leer" y almacenarlas en una matriz?

¿Cómo puedo recibir información de read, dividir las palabras por espacios y luego colocarlas en una matriz?

Lo que quiero es:

$ read sentence
this is a sentence
$ echo $sentence[1]
this
$ echo $sentence[2]
is
(and so on...)

Estoy usando esto para procesar oraciones en inglés para una aventura de texto.

Respuesta1

Si está utilizando bash, su readcomando tiene una -aopción para eso.

Dehelp read

Options:
  -a array  assign the words read to sequential indices of the array
        variable ARRAY, starting at zero

Entonces

$ read -a s
This is a sentence.

Tenga en cuenta que la matriz resultante está indexada a cero, por lo que

$ echo "${s[0]}"
This
$ echo "${s[1]}"
is
$ echo "${s[2]}"
a
$ echo "${s[3]}"
sentence.
$ 

Respuesta2

Una respuesta similar a la de @steeldriver

#!/bin/bash
printf "Input text:" && read UI ;
read -a UIS <<< ${UI} ;
X=0 ;
for iX in ${UIS[*]} ; do printf "position: ${X}==${iX}\n" ; ((++X)) ; done ;

información relacionada