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
, read
verfügt der Befehl über eine -a
entsprechende 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 ;