Команда
read в Linux используется для чтения ввода от пользователя или из стандартного потока и сохранения его в переменные. Она особенно полезна в скриптах, когда нужно запросить у пользователя данные.⚙️ Синтаксис:
read [опции] переменные
⚙️ Опции:
-p "текст" — выводит приглашение перед вводом.-t <сек> — ограничение по времени (таймаут ожидания ввода).-n <число> — считать только указанное количество символов (без ожидания Enter).-s — скрытый ввод (подходит для паролей).-a массив — сохраняет слова ввода в массив.-r — отключает спецсимволы обратной косой черты (\).Если команде
read не задан аргумент, вся строка присваивается переменной REPLY:echo "Hello, world!" | (read; echo "$REPLY")
⚙️ Примеры использования:
1️⃣ Простая приостановка с ожиданием нажатия любой клавиши:
read -p "Press any key to continue " -n 1
2️⃣ Добавление временного ограничения с автоматическим продолжением:
read -p "Press any key to continue (autocontinue in 30 seconds) " -t 30 -n 1
3️⃣ Создание цикла для более сложной логики управления выполнением:
REPLY=""
until [ "$REPLY" = "y" ]; do
# executing some command
read "Press 'y' to continue or 'n' to break, any other key to repeat this step" -n 1
if [ "$REPLY" = 'n' ]; then exit 1; fi
done
4️⃣ Скрытый ввод (например, пароль):
read -s -p "Введите пароль: " password
echo "Is your password really $password? "
5️⃣ Чтение в массив:
read -a words
echo "Первое слово: ${words[0]}"
echo "Второе слово: ${words[1]}"
Если ввести Linux Bash, массив
words будет содержать ["Linux", "Bash"].