shell脚本之从用户读取输入并进行验证
来源:互联网 发布:旅游教学软件 编辑:程序博客网 时间:2024/05/21 22:49
shell从经常需要用read命令从终端读取用户输入,并验证输入的数据是否合法。常见的验证有验证输入的是否是一个数值,是否是一个有效的IP地址等等。
shell本身并没有提供这些验证数据合法性的命令。以下是用来验证数据合法性的一些接口。这些接口封装了read命令在里面。
1.验证输入的是否是数字
#$1: input promt
#@usage:从终端读取用户输入,除非获得一个有效的用户输入,不然会一直读取ReadAndCheckNumber(){local isLegalInput=nogNumber="NULL"while [ ${isLegalInput} = "no" ];do #如果用户输入ENTER,则表示为默认,退出read -p "$1"test -z $REPLY && break;echo "$REPLY" | grep -q '[^0-9]'if [ $? -ne 0 ];thenisLegalInput=yes#gNumber=$REPLYelseecho "Wrong format!!!"fidone}
举个例子。
ReadAndCheckNumbern "Please Input a Number"
test -z $REPLY && val=$REPLY
2.验证输入是否为有效的IP地址
#$1: input promt
checkValidIP(){local isLegalInput=nowhile [ ${isLegalInput} = "no" ];doread -p "$1"test -z $REPLY && break;echo "$REPLY" | grep -q '[^0-9.]' && echo "Wrong format!!!" && continue [ $(echo -e "${REPLY//./\n}" | wc -l) -ne 4 ] && echo "Wrong format!!!" && continue n=1 for i in x y z w;doexport ip$i=$(echo $REPLY | cut -f$n -d".")((n+=1))done[ $ipx ] && (( $ipx>=0 && $ipx<256 ))&&\[ $ipy ] && (( $ipy>=0 && $ipy<256 ))&&\[ $ipz ] && (( $ipz>=0 && $ipz<256 ))&&\[ $ipw ] && (( $ipw>=0 && $ipw<256 ))if [ $? -eq 0 ];thenisLegalInput=yeselseecho "Wrong format!!!"fidone}
#输入测试
#a.b.c.d
#1.1.1
#1...
#1.2.3.4.5
3.验证Yes/No
checkYesOrNo(){read -p "$1"case $REPLY in[Nn] | [Nn][Oo] )echo "no";;[Yy] | [Yy][Ee][Ss] )echo "yes";;esac}
0 0
- shell脚本之从用户读取输入并进行验证
- Shell读取用户输入
- shell 读取用户输入
- Shell读取用户输入
- linux shell脚本读取用户输入的参数
- linux shell脚本读取用户输入的参数
- Linux shell脚本读取用户输入的参数
- linux shell读取用户输入
- Linux Shell 读取用户输入
- Linux学习-shell脚本编程基础之处理用户输入
- shell脚本读取终端输入的方法
- 文件逐行读取并进行相关处理的Unix Shell 脚本
- shell脚本之读取文件
- [shell脚本学习]处理用户输入
- Shell脚本基础3-获取用户输入
- 【c语言】从标准输入读取c源代码,并验证所有花括号都成对出现
- Shell读取用户输入【以及循环读取验证和while循环中添加多个条件[ .. ] &&或者|| [ .. ]】
- AngularJS之用户输入验证
- tornado访问静态文件1
- DocumentBuilder 递归解析xml,适合android 以及java
- Cocos2d
- eclipse 调试远程tomcat
- Java应用程序编程
- shell脚本之从用户读取输入并进行验证
- SqlServer还原数据库时,提示无法获得对数据库的独占访问权 的错误解决方法
- Java 多态
- Joomla微博推广
- Climbing Stairs
- iPhone 5即将基于NFC的苹果产品
- IPraxa不断升级你的职业生涯有实际的培训
- UVA 10596 - Morning Walk
- iPad的必备技巧