Чтение ввода пользователя
Чтение ввода пользователя
А теперь — самое интересное. Мы напишем свой скрипт так, что он будет взаимодействовать с пользователем, а пользователь с ним. Команда для получения данных от пользователя —read. Это встроенная в bash команда, сохраняющая ввод пользователя в указанной переменной:
#!/bin/bash
# спросить у пользователя его имя и поздороваться с ним
echo -n "Введите свое имя: "
read user_name
echo "Привет $user_name!"
Переменная здесь — это user_name. Конечно, мы могли бы назвать ее как угодно. Оператор read прервет выполнение скрипта и будет ждать, пока пользователь введет что-нибудь и нажмет клавишу ENTER. Если клавиша ENTER была нажата без ввода чего-либо, read запустит следующую строку кода. Попробуйте это сделать. Ниже приведен тот же пример, только на этот раз мы проверяем, вводит ли пользователь что-либо:
#!/bin/bash
# спрашиваем имя пользователя и выводим приветствие
echo -n "Введите имя: "
read user_name
# проверка ввода пользователя
if [ -z "$user_name" ]; then
echo "Вы не сказали мне свое имя!"
exit
fi
echo "Привет $user_name!"
В приведенном примере, если пользователь нажал ENTER и не ввел при этом ничего, наша программа напишет об этом и завершит свою работу. В противном случае она напечатает приветствие. Получение пользовательского ввода полезно для интерактивных программ, которые требуют от пользователя ввести какие-то данные.