文件名: 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中测试通过。)
|
|