Wörter aus „lesen“ aufteilen und im Array speichern?

Wörter aus „lesen“ aufteilen und im Array speichern?

Wie kann ich Eingaben von übernehmen read, die Wörter durch Leerzeichen aufteilen und diese Wörter dann in ein Array einfügen?

Was ich will ist:

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

Ich verwende dies, um englische Sätze für ein Textabenteuer zu verarbeiten.

Antwort1

Wenn Sie verwenden bash, readverfügt der Befehl über eine -aentsprechende Option.

Aushelp read

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

Also

$ read -a s
This is a sentence.

Beachten Sie, dass das resultierende Array nullindiziert ist.

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

Antwort2

Eine ähnliche Antwort wie die von @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 ;

verwandte Informationen