首页 > 学技术 > 技术网文 > Linux Shell > 正文

[精彩] sco 5.05中用shell实现的密码输入脚本,可将输入字符转换为*


来源 chinaunix.net 酷勤网整理

[size=18][/size]#############################################
#!/bin/ksh
#该段脚本实现输入密码并且用*号显示输入字符,
#输入回车键终止输入密码。该代码在SCO 5.05上
#KSH下已经调试通过。
#河南 平顶山 王向宇    2005.05.11
#############################################

#该函数实现无缓冲输入一个字符,并传给位置参数$1
getchar()
{
        #设置无缓冲输入模式
        stty raw
        #设置输入不回显
        stty -echo
        #将该字符传送给位置参数$1
        eval $1=`dd if=/dev/tty bs=1 count=1 2> /dev/null`
        #恢复回显
        stty echo
        #恢复原终端输入模式,也可用命令:stty sane实现同样功能
        stty cooked
}
clear
#将光标定位到15行10列
tput cup 15 10
echo -n "请输入密码:\c"
#初始化光标位置
CURPOS=20
while true
do
        #光标向前移动一列
        CURPOS=`expr ${CURPOS} + 1`
        getchar char
        tput cup 15 ${CURPOS}
        echo "*"
if [ "${char}"  = "^M" ]
        then
                break
        else
         PWDSTR=${PWDSTR}${char}
fi
done
echo "你输入的密码是: ${PWDSTR}"



 寂寞烈火 回复于:2005-05-12 16:09:08

代码精彩,注释详尽! 收藏!




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=543875
转载请注明作者名及原文出处



收藏本页到: