验证用户输入的参数合法性的shell脚本
今天这个例子是用来验证用户输入的参数的合法性的,程序并不复杂,如下所示:
#!/bin/sh #validAlphaNum-Ensuresthatinputconsistsonlyofalphabetical #andnumericcharacters. validAlphaNum() { #Validatearg:returns0ifallupper+lower+digits,1otherwise #Removeallunacceptablechars compressed="$(echo$1|sed-e's/[^[:alnum:]]//g')" if["$compressed"!="$input"];then return1 else return0 fi } #Sampleusageofthisfunctioninascript echo-n"Enterinput:" readinput if!validAlphaNum"$input";then#//这个有点巧妙,就是如果函数的返回值为1的话,则执行 echo"Yourinputmustconsistofonlylettersandnumbers.">&2 exit1 else echo"Inputisvalid." fi exit0
就像上面所说这脚本流程和思路还是很简明的,就是讲你的输入用sed过滤后于原输入相比较,不相等则输入不合法。
值得注意的地方有
1)sed-e's/[^[:alnum:]]//g'([:alnum:]是大小写字母及数字的意思,这里sed的作用是将非大小写字母及数字过滤掉。
2)if!validAlphaNum"$input"$input作为函数的参数被调用,注意这里加了引号。