Разделение ввода пользователя с помощью команды чтения
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