Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103690009
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-18 22:28:43

文件名: 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 # 此处的^[用+输入 
"$p" = "^M" ] && break # 此处的^M用++输入 
PASS=`echo $PASS$p` 
echo "\033[12;`expr 26 + $i`H*\c" > /dev/tty 
do 
i=`expr $i + 1` 
done 
do 
"$p" = "^[" ] && { # 此处的^[用+输入 
clear;break 

echo "\n你的输入为:$PASS";break 
PASS='' 
done 
[说明]在输入中敲键即可中止输入退出程序。 
这仅仅是一个例子,你还可以根据自己的需要调整,也可以把它做成一个函数放在 
自己的shell中。 
(在SCO OpenServer 5.0.5中测试通过。) 
阅读(285) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~