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

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航