zaLinux.ru

Как в Bash прочитать ввод пользователя в переменную?


Эта инструкция расскажет, как сделать, чтобы скрипт 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.

Смотрите также:


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *