read
から入力を取得し、単語をスペースで分割して、それらの単語を配列に格納するにはどうすればよいですか?
私が欲しいのは:
$ read sentence
this is a sentence
$ echo $sentence[1]
this
$ echo $sentence[2]
is
(and so on...)
私はこれを使用して、テキストアドベンチャーの英語の文章を処理しています。
答え1
を使用している場合bash
、そのread
コマンドには-a
そのためのオプションがあります。
からhelp read
Options:
-a array assign the words read to sequential indices of the array
variable ARRAY, starting at zero
それで
$ read -a s
This is a sentence.
結果の配列はゼロインデックスなので、
$ echo "${s[0]}"
This
$ echo "${s[1]}"
is
$ echo "${s[2]}"
a
$ echo "${s[3]}"
sentence.
$
答え2
@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 ;