Под «вводом паролей» вы, скорее всего, подразумеваете ввод данных, которые не видны пользователю.
(предложено geirha) При использовании bash вы можете использовать -s
опцию, чтобы предотвратить отображение напечатанных символов:
read -p "Password please: " -s pass
Или измените поведение терминала, чтобы скрыть напечатанные символы с помощью stty -echo
(отключить echo
). После прочтения пароля, встроенного в read
переменную оболочки (в приведенном ниже примере $pass
), включите его снова с помощью stty echo
. Поскольку новая строка из Enterскрыта для, вы должны напечатать новую строку, чтобы получить будущие выходные данные в новой строке.
stty -echo
read -p "Password please: " pass
stty echo
printf '\n'
read
и printf
встроенные оболочки. stty
предоставляется coreutils
пакетом, который установлен по умолчанию. Это означает, что этот фрагмент очень переносим.
Примечание: -p
опция не стандартная, а из bash
. Если вам нужно отобразить подсказку в других оболочках, используйте:
printf "Password please: "
stty -echo
read pass
stty echo
printf '\n'
Ссылки: