HowTo hide Password in shell Scripting using Bash
Today our subject is related to bash shell scripting. and when you are doing complex shell scripting sometimes you need to read the password formstdin, but you don’t want to show the password as its being entered, so how could we do such thing.
We will do it in very simple approach using sttywhich is used mostly in changing or printing terminal line settings in human readable format or in stty readable format”sequence of hex values” , so lets jump to the solution explanation
1. Save original terminal settings in a variable
2. Disable echo from terminal line settings
3. When ever you need to enable terminal line echo use the variable we sat in point 1, and when ever you want to disable echo use point 2
Check below example which represent password validation function.
#!/bin/bash
pass_check(){ #password validation function
stty_orig=`stty -g`
stty -echo
read -p 'Enter your password : ' password
echo ""
read -p 'Enter your password once again : ' password1
stty $stty_orig
echo ""
if [ $password != $password1 ]
then
echo ' password doesnt match '
pass_check
else
stty $stty_orig
fi
}
If you misused stty for echo or for any thing else , the terminal stop responding for your input, or you will notice terminal behaving in a weird way. As a solution usereset command any time to reset stty to its defaults.
I hope that was helpful : ) .
Bash中隐藏密码输入

本文介绍如何在Bash shell脚本中实现密码输入时不显示明文的方法。通过使用stty命令来控制终端的回显功能,使得用户输入的密码不会被直接显示出来。
9343

被折叠的 条评论
为什么被折叠?



