Разделение ввода пользователя с помощью команды чтения
echo -n "# WHICH DAYS? #"
read day
предположим, что пользовательский ввод: 100
101
с одним пробелом между числами. Например, мне нужно извлечь значение первого и второго столбца дня отдельно, какая команда дает это значение? Я попробовал ниже команды, но они дают целый массив;
first_column_of_day=${day[${1}]}
echo "$first_column_of_day"
second_column_of_day=${day[${2}]}
echo "$second_column_of_day"
1 ответ
Решение
Во-первых, вы должны сказать read
использовать массив. От help read
:
-a array assign the words read to sequential indices of the array
variable ARRAY, starting at zero
Ну действуй:
read -a day
Затем используйте просто 1
а также 2
, без ${...}
, В этом случае, как подсказки текстовых заметок, начинайте с 0
:
first_column_of_day="${day[0]}"
second_column_of_day="${day[1]}"
${1}
является первым аргументом сценария, который может или не может быть 1
,
Также обратите внимание, что bash
"s read
можете распечатать подсказку:
-p prompt output the string PROMPT without a trailing newline before
attempting to read
Так:
read -p "# WHICH DAYS? #" -a day