14

Bash builtin read command doesn't seem to support it, now I need to let user input a password while no echo should be displayed, what tool can I use?

  • 4
    help read|grep echo: "-s do not echo input coming from a terminal" – donothingsuccessfully Nov 16 '12 at 7:25
  • 1
    @donothingsuccessfully This -s extension of read is not standard. You may not be able to use it on any Unix/Linux. – Totor Apr 22 '13 at 21:26
23
#!/bin/bash
stty -echo
IFS= read -p 'Enter password: ' -r password
stty echo
printf '\nPassword entered: %s\n' "$password"
  • stty -echo turns off the terminal echo, which is the display you're talking about;
  • IFS= is necessary to preserve whitespace in the password;
  • read -r turns off backslash interpretation.

In bash you can also use read -s, but this feature isn't standard across shells.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.