免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1961 | 回复: 7
打印 上一主题 下一主题

一段用来验证密码的shell [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-17 21:42 |只看该作者 |倒序浏览
一段用来验证密码的shell
通过这个简单的验证密码的shell脚本,来熟悉下while和if的用法,也许对您有点用处,当然还有更多的实现方法,比如用until什么的

  1. #!/bin/sh
  2. # hao32 repasswd

  3. while [ -z $pass1 ] || [ -z $pass2 ] || [ $pass1 != $pass2 ]
  4. do
  5.         read -p "Please type your passwd :" pass1
  6.         read -p "Please conform your passwd :" pass2
  7.             if [ -z $pass1 ]; then
  8.             echo "passwd should not be empty!"
  9.             elif [ $pass1 != $pass2 ]; then
  10.             echo "passwd not match! retype again!"
  11.             fi
  12. done

  13. echo "Ok, you passed"
复制代码


欢迎转载本文,请注明来自:http://www.linuxsense.org

论坛徽章:
0
2 [报告]
发表于 2007-11-17 23:13 |只看该作者
这个要怎么来操作呢 来验证密码

论坛徽章:
0
3 [报告]
发表于 2007-11-17 23:40 |只看该作者
就是验证两次输入的密码是否一致,学习了。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2007-11-18 00:18 |只看该作者
明文的么? 最好能用个星号代替吧, 最好加上位数限制啥的, 就更好啦

论坛徽章:
0
5 [报告]
发表于 2007-11-18 14:44 |只看该作者
最好隐藏输入~~嘿嘿
  1. #!/bin/sh
  2. # hao32 repasswd

  3. SAVESTTY=`stty -g`#保存当前输出可见的状态
  4. while [ -z $pass1 ] || [ -z $pass2 ] || [ $pass1 != $pass2 ]
  5. do   
  6.         stty -echo#隐藏输入
  7.         read -p "Please type your passwd :" pass1
  8.         read -p "Please conform your passwd :" pass2
  9.         stty $SAVESTTY#恢复之前状态
  10.             if [ -z $pass1 ]; then
  11.             echo "passwd should not be empty!"
  12.             elif [ $pass1 != $pass2 ]; then
  13.             echo "passwd not match! retype again!"
  14.             fi
  15. done

  16. echo "Ok, you passed"
复制代码

论坛徽章:
0
6 [报告]
发表于 2007-11-18 15:23 |只看该作者
原帖由 寂寞烈火 于 2007-11-18 00:18 发表
明文的么? 最好能用个星号代替吧, 最好加上位数限制啥的, 就更好啦

想的很周到

论坛徽章:
0
7 [报告]
发表于 2007-11-18 23:08 |只看该作者
read -p是啥意思?man 2 read里没找到。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
8 [报告]
发表于 2007-11-18 23:18 |只看该作者
原帖由 灿烂小猪 于 2007-11-18 23:08 发表
read -p是啥意思?man 2 read里没找到。

  1. -p prompt
  2.                      Display prompt on standard error, without a trailing new-
  3.                      line, before attempting to read any input.  The prompt is
  4.                      displayed only if input is coming from a terminal.
复制代码

http://bbs.chinaunix.net/viewthr ... amp;highlight=r2007
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP