Разделить слова от `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 ; 
  • Что означает «rm hashed»?
  • Поиск подстроки без учета регистра в скрипте оболочки
  • Создание функции, отображающей имя переменной и ее значение
  • Сортировка файлов в папке в датированные папки
  • Сделать скрипт командной строки выполнять команды в telnet или программах
  • код для отображения текста TRUE
  • Команда sftp с именем «\» в имени пользователя не работает
  • Найдите слово в предложении с Bourne Shell (sh)
  • Есть ли способ, чтобы функция в моем сценарии bash автоматически запускалась при любой ошибке команды?
  • Условно убивая процесс, основанный на его выходе
  • как это сделать: dd if = coolstuff.iso of = (ssh kev @ mypi)
  • Linux и Unix - лучшая ОС в мире.