Эта инструкция расскажет, как сделать, чтобы скрипт Bash показывал приглашение командной строки, куда пользователь может ввести данные и эти данные будут присвоены переменной, которую можно в дальнейшем использовать в скрипте.
Итак, наша задача: показать пользователю в консоли строку ввода с объяснением, что от него требуется.
Для этого можно использовать read -p:
read -p "Введите полное имя: " fullname read -p "Введите желаемое имя пользователя в системе: " user
В этих строках указанные значения будут присвоены переменным $fullname и $user.
Другой вариант написания, но суть точно такая же:
echo -n "Введите полное имя: " read fullname
Помните, что при дальнейшем использовании имена переменных нужно заключать в двойные кавычки, иначе если в строке имеются специальные символы, переносы строк или пробелы, вы получите неожиданный результат.
Пример использование переменных, когда они помещены в двойные кавычки:
passwd "$user" mkdir "$home" chown "$user:$group" "$home"
Пример конструкции, в которой считывается пользовательский ввод и если введено что-либо иное кроме y или yes (в любом регистре):
read -p "Продолжить? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || exit 1
Также попробуйте zenity - вам может понравиться!
user=$(zenity --entry --text 'Пожалуйста, введите имя пользователя:') || exit 1
В этом примере, будет показано следующее окно для ввода данных:
А введённые данные будут присвоены переменной $user.
Смотрите также:
- Как создавать диалоговые блоки в интерактивных shell скриптах
- Как в Bash реализовать «Нажмите любую кнопку для продолжения»
Связанные статьи:
- Как создавать диалоговые блоки в интерактивных shell скриптах (69.5%)
- Как в Bash реализовать «Нажмите любую кнопку для продолжения» (63.4%)
- Как в Bash проверить, содержит ли строка подстроку (51.2%)
- Что такое башизм (bashisms) (51.2%)
- Функции в Bash: объявление, вызов и передача аргументов в функцию (51.2%)
- Как вывести список только директорий используя ls в Bash (RANDOM - 1.2%)