Как я могу использовать read
с чем-то в качестве стандартного ответа, который может изменить пользователь? (ответ по умолчанию)
2 ответа
Вы бы написали это:
read -p "enter a value: " -i default -e answer
echo "you answered: $answer"
-i default
указывает ответ по умолчанию.-e
включает интерактивный (редактирующий) режим дляread
. Без этой опции ответ по умолчанию не работает.
Таким образом, нельзя изменить значение по умолчанию с помощью bash 3.2. Вы могли бы сделать это:
default="the default value"
read -p "your answer [default=$default] " answer
: ${answer:=$default}
echo "you answered: $answer"
При этом используется значение по умолчанию, если пользователь ничего не вводит (пустая строка)
Ссылка на чтение - чтение строки из стандартного ввода:
Это встроенная оболочка BASH.
Одна строка считывается из стандартного ввода, и первое слово присваивается первому имени, второе слово - второму имени и т.д., А оставшиеся слова и их промежуточные разделители присваиваются фамилии.
Если из стандартного ввода прочитано меньше слов, чем имен, остальным именам присваиваются пустые значения.
Символы в значении переменной IFS используются для разделения строки на слова.
Символ обратной косой черты `\'может использоваться для удаления любого специального значения для следующего чтения символа и для продолжения строки.
Если имена не указаны, считываемая строка присваивается переменной REPLY. Код возврата равен нулю, если конец файла не найден или время чтения не истекло.
Примеры
#!/bin/bash
read var_year
echo "The year is: $var_year"
echo -n "Enter your name and press [ENTER]: "
read var_name
echo "Your name is: $var_name"