<Предыдущая | Содержание: | Следующая>
Возможности
read поддерживает следующие параметры:
Таблица 28-1: параметры чтения
Вариант Описание
Вариант Описание
-a массив Назначьте вход на массив, начиная с нулевого индекса. Мы
мы рассмотрим массивы в главе 35.
-d ограничитель Первый символ в строке ограничитель используется, чтобы
указывает конец ввода, а не символ новой строки.
-e Используйте Readline для обработки ввода. Это позволяет редактировать ввод так же, как и в командной строке.
-i string Используйте string в качестве ответа по умолчанию, если пользователь просто нажимает
Входить. Требуется -e опцию.
-n Num Читать Num символы ввода, а не целую строку.
-p подсказка Отобразить приглашение для ввода с помощью строки подсказка.
-r Необработанный режим. Не интерпретируйте символы обратной косой черты как escape-символы.
-s Тихий режим. Не выводите символы на дисплей по мере их ввода. Это полезно при вводе паролей и другой конфиденциальной информации.
-t секунды Тайм-аут. Завершить ввод после секунды. читать возвращает
ненулевой статус выхода, если время ввода истекло.
-u fd Использовать ввод из файлового дескриптора fd, а не стандартный ввод.
Используя различные варианты, мы можем делать интересные вещи с читать. Например, с
-p, мы можем предоставить строку подсказки:
#! / Bin / Баш
# read-single: считывать несколько значений в переменную по умолчанию read -p "Введите одно или несколько значений>"
echo "REPLY = '$ REPLY'"
#! / Bin / Баш
# read-single: считывать несколько значений в переменную по умолчанию read -p "Введите одно или несколько значений>"
echo "REPLY = '$ REPLY'"
Для -t и -s options, мы можем написать сценарий, который считывает «секретный» ввод и истекает время ожидания, если ввод не завершен в указанное время:
#! / Bin / Баш
# read-secret: введите секретную парольную фразу
если прочитано -t 10 -sp "Введите секретную парольную фразу>" secret_pass; затем echo -e "\ nSecret passphrase = '$ secret_pass'"
еще
echo -e "\ nInput timed out"> & 2 exit 1
fi
#! / Bin / Баш
# read-secret: введите секретную парольную фразу
если прочитано -t 10 -sp "Введите секретную парольную фразу>" secret_pass; затем echo -e "\ nSecret passphrase = '$ secret_pass'"
еще
echo -e "\ nInput timed out"> & 2 exit 1
fi
Сценарий запрашивает у пользователя секретную парольную фразу и ожидает ввода 10 секунд. Если запись не будет завершена в течение указанного времени, сценарий завершится с ошибкой. Поскольку
-s опция включена, символы парольной фразы не выводятся на дисплей по мере их ввода.
Можно предоставить пользователю ответ по умолчанию, используя -e и -i варианты вместе:
#! / Bin / Баш
# read-default: укажите значение по умолчанию, если пользователь нажимает клавишу Enter. read -e -p "Какое ваше имя пользователя?" -i $ USER
echo "Вы ответили: '$ REPLY'"
#! / Bin / Баш
# read-default: укажите значение по умолчанию, если пользователь нажимает клавишу Enter. read -e -p "Какое ваше имя пользователя?" -i $ USER
echo "Вы ответили: '$ REPLY'"
В этом сценарии мы предлагаем пользователю ввести свое имя пользователя и использовать переменную среды USER для предоставления значения по умолчанию. Когда скрипт запускается, он отображает строку по умолчанию, и если пользователь просто нажимает клавишу Enter, читать назначит строку по умолчанию для оТВЕТИТЬ Переменная.
[я @ linuxbox ~] $ чтение по умолчанию Какое у тебя имя пользователя? мне Вы ответили: "я"
[я @ linuxbox ~] $ чтение по умолчанию Какое у тебя имя пользователя? мне Вы ответили: "я"