Разделить слова от `read` и хранить до массива?

Как я могу принимать ввод от read , разбивать слова вверх пробелами и затем помещать эти слова в массив?

Я хочу:

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

Я использую это для обработки английских предложений для текстового приключения.

2 Solutions collect form web for “Разделить слова от `read` и хранить до массива?”

Если вы используете bash , для его команды read есть опция -a .

Из help read

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

Так

 $ read -as This is a sentence. 

Обратите внимание, что результирующий массив нулевым индексом, поэтому

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

Аналогичный ответ от @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 ; 
  • Как преобразовать относительный к абсолютному пути, портативно и надежно?
  • Преобразование цикла кода в функцию
  • Как я могу интерполировать текстовый файл трехмерных координат (X, Y, Z) на регулярную сетку?
  • Проверьте входящий поток на пустые пространства и переместите его
  • Что делать, если я хочу печатать каждую команду в файле sh в файле журнала, а также в консоли
  • Создание каталога с пробелом в имени
  • Как я могу сделать awk на Busybox обрабатывать весь вход с символом NULL между ними как одну запись?
  • GNU Parallel и sshpass с списком серверов в цикле
  • Как добавить язык во FreeBSD?
  • Самый изящный способ прекратить навязчивую программу
  • Как сделать `cd dir / filename` взять меня в директорию?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.