Как запросить данные у пользователя на Bash

Пользователи Linux, только начинающие постигать премудрости написания сценариев на Bash, часто сталкиваются с необходимостью запросить у пользователя какие-нибудь дополнительные данные в момент исполнения сценария. Индийский программист Никеш Йаухари рассказывает как можно это осуществить.

За общение с пользователем отвечает команда read. В качестве аргумента следует указывать имя переменной окружения, которой будет присвоена введенная пользователем строка. Если требуется подавить вывод вводимой строки на экран (например, если у пользователя запрашивается пароль), то следует использовать опцию -s.

Следующий пример демонстрирует работу команды read. Скрип сначала запрашивает у пользователя имя, потом пароль, потом выводит имя и пароль на экран. Обратите внимание, что в качестве аргумента передается имя переменной окружения без символа «$», тогда как при выводе содержимого этой переменной с помощью команды echo символ «$» уже используется.


#!/bin/bash
echo -n "Введите свое имя: ";
read username
echo -n "Введите пароль: "
read -s passwd
echo
echo "$username, ваш пароль $passwd";

Вывод при работе сценария будет выглядеть следующим образом:

$ ./readpass.sh
Введите свое имя: nikesh
Введите пароль:
nikesh, ваш пароль linuxpoison

Названия программ: 

Комментировать

Filtered HTML

  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.