文件名: input.sh
用法:input.sh 限制的长度
例:input.sh 8 即限制输入8位。
# input.sh
# 湖北省仙桃市信用联社 吕永辉
trap '' 1 2 3 5 7 9 15 13
getcon(){
stty raw -echo
conchar=`dd if=/dev/tty bs=1 count=1 2>/dev/null`
stty sane
echo "$conchar"
}
while
i=0;clear >/dev/tty
echo "\033[12;15H请输入口令[`printf "%$1s" ' '`]" > /dev/tty
echo "\033[12;26H\c" > /dev/tty
while
[ "$i" = "$1" ] && break
p=`getcon`
[ "$p" = "^[" ] && break # 此处的^[用<ctrl>+<v>和<esc>输入
[ "$p" = "^M" ] && break # 此处的^M用<ctrl>+<v>和<ctrl>+<M>输入
PASS=`echo $PASS$p`
echo "\033[12;`expr 26 + $i`H*\c" > /dev/tty
do
i=`expr $i + 1`
done
do
[ "$p" = "^[" ] && { # 此处的^[用<ctrl>+<v>和<esc>输入
clear;break
}
echo "\n你的输入为:$PASS";break
PASS=''
done
[说明]在输入中敲<Esc>键即可中止输入退出程序。
这仅仅是一个例子,你还可以根据自己的需要调整,也可以把它做成一个函数放在
自己的shell中。
(在SCO OpenServer 5.0.5中测试通过。)