Утилита командной строки для получения пароля, который не имеет эха назад

14

Встроенная команда чтения Bash, похоже, не поддерживает ее, теперь мне нужно разрешить пользователю вводить пароль, пока не должно отображаться эхо, какой инструмент я могу использовать?

маргаритка
источник
4
help read|grep echo: « -sНе
повторяйте
1
@donothingsuccessfully Это -sрасширение неread является стандартным . Возможно, вы не сможете использовать его на любом Unix / Linux.
Тотор

Ответы:

23
#!/bin/bash
stty -echo
IFS= read -p 'Enter password: ' -r password
stty echo
printf '\nPassword entered: %s\n' "$password"
  • stty -echo отключает эхо терминала, то есть дисплей, о котором вы говорите;
  • IFS= необходимо сохранить пробелы в пароле;
  • read -r отключает обратную косую черту

В bashтакже можно использовать read -s, но эта функция не является стандартной для всех оболочек.

Крис Даун
источник