shell脚本之从用户读取输入并进行验证
2014-08-12 14:41
519 查看
shell从经常需要用read命令从终端读取用户输入,并验证输入的数据是否合法。常见的验证有验证输入的是否是一个数值,是否是一个有效的IP地址等等。
shell本身并没有提供这些验证数据合法性的命令。以下是用来验证数据合法性的一些接口。这些接口封装了read命令在里面。
1.验证输入的是否是数字
举个例子。
ReadAndCheckNumbern "Please Input a Number"
test -z $REPLY && val=$REPLY
2.验证输入是否为有效的IP地址
#输入测试
#a.b.c.d
#1.1.1
#1...
#1.2.3.4.5
3.验证Yes/No
shell本身并没有提供这些验证数据合法性的命令。以下是用来验证数据合法性的一些接口。这些接口封装了read命令在里面。
1.验证输入的是否是数字
#$1: input promt
#@usage:从终端读取用户输入,除非获得一个有效的用户输入,不然会一直读取 ReadAndCheckNumber() { local isLegalInput=no gNumber="NULL" while [ ${isLegalInput} = "no" ]; do #如果用户输入ENTER,则表示为默认,退出 read -p "$1" test -z $REPLY && break; echo "$REPLY" | grep -q '[^0-9]' if [ $? -ne 0 ];then isLegalInput=yes #gNumber=$REPLY else echo "Wrong format!!!" fi done }
举个例子。
ReadAndCheckNumbern "Please Input a Number"
test -z $REPLY && val=$REPLY
2.验证输入是否为有效的IP地址
#$1: input promt
checkValidIP() { local isLegalInput=no while [ ${isLegalInput} = "no" ]; do read -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;do export 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 ];then isLegalInput=yes else echo "Wrong format!!!" fi done }
#输入测试
#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 }
相关文章推荐
- 验证用户输入的参数合法性的shell脚本
- shell脚本读取用户输入并与之交互
- 验证用户输入的参数合法性的shell脚本
- Shell读取用户输入【以及循环读取验证和while循环中添加多个条件[ .. ] &&或者|| [ .. ]】
- SHELL小脚本1——读取用户输入并作出反应
- 用PHP脚本在Linux系统上读取输入和对文件进行操作
- shell脚本读取终端输入的方法
- shell 脚本中关于用户输入参…
- 用PHP脚本在Linux系统上读取输入和对文件进行操作
- linux shell脚本读取用户输入的参数
- 四则运算程序扩展:将程序改为java语言,并允许用户输入,对输入结果进行验证
- 对用户输入的数据进行安全验证(Safe-Handling User Input)
- 对用户的输入的数据进行安全验证
- Linux学习-shell脚本编程基础之处理用户输入
- shell写自动安装脚本自动读取license和自动输入回车
- shell 读取用户输入
- SHELL脚本的基础知识4——处理用户输入
- shell脚本按行读取文本文件,并对读取的行进行分析
- linux使用svn update进行shell脚本提示用户密码
- SHELL脚本的基础知识4——处理用户输入