Пример 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 обнаруживать нажатие курсорных и некоторых других служебных клавиш.