脚本如下:
function hidden_input
{
typeset function_name="hidden_input"
typeset prompt="$1"
typeset input=""
typeset character=""
echo ""
echo "$prompt:"
STTY_RESTORE=$(stty -g)
stty -echo cbreak
while true
do
character=$(dd if=/dev/tty bs=1 count=1 2> /dev/null)
case $character in
$(printf "\n"))
printf "\n"
break
;;
$(printf "\b"))
if [ -n "$input" ]; then
printf "\b \b"
input=$(echo "$input" | sed 's/.$//g')
fi
;;
*)
input=$input$character
printf '*'
;;esac
done
stty $STTY_RESTORE
RETURN[0]="${input}"
}
hidden_input "Input the password"
password="${RETURN[0]}"
echo $password
Input the password:
******* #输入密码:1234567