ChinaUnix.net
 >> ChinaUnix.net > SCO

[分享][原创]在Shell中控制输入字符长度的方法。

作者:lvgq2001     发表时间:2002/09/16 10:41am

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

此文章相关评论:
该文章有8个相关评论如下:(点这儿可以发表评论)
sdccf 发表于: 2002/09/16 10:42am
好啊!
 
geekchi 发表于: 2002/09/16 01:20pm
先试试。
 
lvgq2001 发表于: 2002/09/17 02:57pm
顶一下
 
sd-feng 发表于: 2002/09/17 05:22pm
不错
 
sqlw 发表于: 2002/09/17 05:50pm
very good!!!!!
 
小肚子 发表于: 2002/09/17 06:00pm
是啊,这个shell有什么用啊???
 
lvgq2001 发表于: 2002/09/17 07:02pm
看来小肚子是一个“悲观主义者”,对任何事情都持否定态度。
 
xzh2002 发表于: 2002/09/26 02:43pm
好!
 
 

Copyright © ChinaUnix.net  *  转载请注明出处及作者