在Shell中控制输入字符长度的方法

【在Shell中控制输入字符长度的方法】
文件名: 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 "33[12;15H请输入口令[`printf "%$1s" " "`]" > /dev/tty
echo "33[12;26Hc" > /dev/tty
while
[ "$i" = "$1" ] && break
p=`getcon`
[ "$p" = "^[" ] && break # 此处的^[用 输入
[ "$p" = "^M" ] && break # 此处的^M用 输入
PASS=`echo $PASS$p`
echo "33[12;`expr 26$i`H*c" > /dev/tty
do
i=`expr $i1`
done
do
[ "$p" = "^[" ] && { # 此处的^[用 输入
clear;break
}
echo "n你的输入为:$PASS";break
PASS=""
done
[说明]在输入中敲键即可中止输入退出程序 。
这仅仅是一个例子,你还可以根据自己的需要调整,也可以把它做成一个函数放在
自己的shell中 。
(在SCO OpenServer 5.0.5中测试通过 。)

    推荐阅读