Bash Read Password
Bash Read Password – In this Bash Tutorial, we shall learn to read username and password from user, with Password being not echoed back to shell.
We shall use read command with following options,
read -p PROMPT <variable_name> displays PROMPT without a new line and echoes input read from user, character by character. The input is read to bash variable. This option p is suitable for reading Username.
read -sp PROMPT <variable_name> displays PROMPT without a new line and reads input from user in silent mode (does not echo back user input). The input is read to variable. These options s,p are suitable for reading Password.
Example 1 – Read Password
In this example, we will write a Bash Shell Script to read username and password from console.
Bash Shell Script
#!/bin/bash
echo 'Welcome to TutorialKart'
read -p 'Username: ' username
read -sp 'Password: ' password
echo
echo "Thank you $username for showing interest in learning with www.tutorialkart.com"
## this echo is for demo purpose only, never echo password
echo "Your password is $password"
Note : An empty echo is provided after reading Password because read -sp reads input in silent mode and does not echo back input including new line. However pressing enter key after password makes the input be loaded to password variable.
Output
$ ./bash-read-username-password Welcome to TutorialKart
Username: Arjun
Password:
Thank you Arjun for showing interest in learning with www.tutorialkart.com
Your password is abc@1234
Example 2 – Read Password with *
In this example, we will read password from user with asterisk echoed back in the console/terminal.
Bash Shell Script
#!/bin/bash
unset username
unset password
# read username
read -p 'Username : ' username
echo -n "Enter password : "
stty -echo
#read password
charcount=0
while IFS= read -p "$prompt" -r -s -n 1 ch
do
# Enter - accept password
if [[ $ch ==
Output
arjun@arjun-VPCEH26EN:~/workspace/bash/readinput$ ./bash-read-username-password-2
Username : Arjun
Enter password : ********
Thank you Arjun for showing interest in learning with www.tutorialkart.com
Your password is abc@1234
Recommended Reading : Bash Read User Input
Conclusion
In this Bash Tutorial – Bash Read Password, we have learnt to read password without echoing back the password or masking it with some other characters.