read
read
читает строку из stdin или файлового дескриптора, записывает слова в список переменных или в переменную-массив (список).
Useful keys
Key Explain -p
выводит приглашение к вводу -i
указание значения по умолчанию -e
позволяет юзать возможности библиотеки Readline. Например, навигация по строке клавишами со стрелками для редактирования значения по умолчанию перед его подтверждением -s
позволяет запрашивать пароли без отображения вводимых символов на экране
Использование редактируемого значения по умолчанию:
Пример запроса ввода пароля:
Реализация "Press any key to continue" в bash
Была старая команда
pause
в DOS/Windows. В bash можно сымитировать ее так.Иногда может понадобиться явно указывать откуда читать клавиши. Например, в некоторых случаях + в конструкции
while > if
может не срабатыватьread
, поэтому нужно настроить явное чтение клавиш с терминала с помощью/dev/tty
:
Поддержка тайм-аута отлично подходит для запроса ввода дополнительных данных, позволяя не «подвесить» сценарий, если пользователю нечего ввести.
Запрос ввода с таймаутом:
select
Команда
select
создает простое меню и позволяет сделать выбор. Можно еще добавить в меню пункты для выхода или отмены.
Похожий инструмент с возможностями побольше -dialog
(но это не идиома bash).
Пример создания меню из ~/.ssh/config
для выбора целевого хоста ssh_target и подключения к нему:
Соус: Книга Идиомы Bash → Глава 10. Помимо идиом: работа с bash → Получение ввода пользователя