Разделение ввода пользователя с помощью команды чтения

echo -n "# WHICH DAYS? #"
read day

предположим, что пользовательский ввод: 100101 с одним пробелом между числами. Например, мне нужно извлечь значение первого и второго столбца дня отдельно, какая команда дает это значение? Я попробовал ниже команды, но они дают целый массив;

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
Другие вопросы по тегам