3

Как я могу использовать read с чем-то в качестве стандартного ответа, который может изменить пользователь? (ответ по умолчанию)

2 ответа2

5

Вы бы написали это:

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"

При этом используется значение по умолчанию, если пользователь ничего не вводит (пустая строка)

0

Ссылка на чтение - чтение строки из стандартного ввода:

Это встроенная оболочка 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"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .