Книга: Искусство программирования на языке сценариев командной оболочки
Пример 11-4. Ввод многострочного текста с помощью read
Пример 11-4. Ввод многострочного текста с помощью read
#!/bin/bash
echo
echo "Введите строку, завершающуюся символом , и нажмите ENTER."
echo "Затем введите вторую строку, и снова нажмите ENTER."
read var1 # При чтении, символ "" экранирует перевод строки.
# первая строка
# вторая строка
echo "var1 = $var1"
# var1 = первая строка вторая строка
# После ввода каждой строки, завершающейся символом "",
# вы можете продолжать ввод на другой строке.
echo; echo
echo "Введите другую строку, завершающуюся символом , и нажмите ENTER."
read -r var2 # Ключ -r заставляет команду "read" воспринимать ""
# как обычный символ.
# первая строка
echo "var2 = $var2"
# var2 = первая строка
# Ввод данных прекращается сразу же после первого нажатия на клавишу ENTER.
echo
exit 0
Команда read имеет ряд очень любопытных опций, которые позволяют выводить подсказку - приглашение ко вводу (prompt), и даже читать данные не дожидаясь нажатия на клавишу ENTER.
# Чтение данных, не дожидаясь нажатия на клавишу ENTER.
read -s -n1 -p "Нажмите клавишу " keypress
echo; echo "Была нажата клавиша ""$keypress""."
# -s -- подавляет эхо-вывод, т.е. ввод с клавиатуры не отображается на экране.
# -n N -- ввод завершается автоматически, сразу же после ввода N-го символа.
# -p -- задает вид строки подсказки - приглашения к вводу (prompt).
# Использование этих ключей немного осложняется тем, что они должны следовать в определенном порядке.
Ключ -n, кроме всего прочего, позволяет команде read обнаруживать нажатие курсорных и некоторых других служебных клавиш.
- Пример 11-1. printf в действии
- Пример 11-2. Ввод значений переменных с помощью read
- Пример 11-3. Пример использования команды read без указания переменной для ввода
- Пример 11-4. Ввод многострочного текста с помощью read
- Пример 11-5. Обнаружение нажатия на курсорные клавиши
- Пример 11-6. Чтение командой read из файла через перенаправление
- Пример 11-7. Смена текущего каталога
- Пример 11-8. Команда let, арифметические операции.
- Пример 11-9. Демонстрация команды eval
- Пример 11-10. Принудительное завершение сеанса
- Пример 11-11. Шифрование по алгоритму "rot13"
- Пример 11-12. Замена имени переменной на ее значение, в исходном тексте программы на языке Perl, с помощью eval
- Пример 11-13. Установка значений аргументов с помощью команды set
- Пример 11-14. Изменение значений позиционных параметров (аргументов)
- Пример 11-15. "Сброс" переменной
- Пример 11-16. Передача переменных во вложенный сценарий awk, с помощью export
- Пример 11-17. Прием опций/аргументов, передаваемых сценарию, с помощью getopts
- Пример 11-18. "Подключение" внешнего файла
- Пример 11-19. Пример (бесполезный) сценария, который подключает себя самого.
- Пример 11-21. Сценарий, который запускает себя самого
- Пример 11-2. Ввод значений переменных с помощью read
- Пример 11-11. Шифрование по алгоритму "rot13"
- Пример установочного скрипта
- Пример из практики
- Повышение производительности приложений с помощью хранимых процедур
- Тестирование Web-сервиса XML с помощью WebDev.WebServer.exe
- Класс StreamReader
- Организация пользователей в группы с помощью ролей
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Набор текста
- Примеры получения статистики
- Пример применения метода «пять почему»