Linux shell编程实现密码掩码输入,效果如下:

脚本源码:
#!/bin/bash
read -p "type your name:" name
password=""
echo -n "type your password:"
while read -n 1 cc; do
if [ $cc ]; then
password=$password$cc
echo -n -e "\b*"
else
break;
fi
done
echo "The name you typed is "$name
echo "The password you typed is "$password
exit 0
用到的命令解释:
read [选项] [变量],例如上边的read -p "type your name:" name,将输入存入name变量。整个核心实现就是这个while循环:
while read -n 1 cc; do #1
if [ $cc ]; then #2
password=$password$cc #3
echo -n -e "\b*" #4
else #5
break; #6
fi #7
done #8
第一行,循环执行read -n 1 cc命令,每次循环从终端输入获取一个字符存入cc变量
第二行,判断读入的字符是否是换行符
第三行,若不是换行符将cc中的字符拼接到password变量中
第四行,在终端上退格一下再输出一个*用于覆盖输入的实际字符,达到掩码的目的
第六行,输入的是换行符表示退出,终止整个循环,密码输入完成