101个shell脚本之002

本文介绍了一个简单的Shell脚本,用于确保用户输入仅包含字母和数字。通过使用sed命令过滤非字母数字字符,并与原始输入进行对比来实现合法性验证。

 这是第二集,今天这个例子是 用来验证用户输入的参数的合法性的,程序并不复杂,如下所示:

 

#!/bin/sh
# validAlphaNum - Ensures that input consists only of alphabetical
# and numeric characters.

validAlphaNum()
{
  # Validate arg: returns 0 if all upper+lower+digits, 1 otherwise

  # Remove all unacceptable chars
  compressed="$(echo $1 | sed -e 's/[^[:alnum:]]//g')"

  if [ "$compressed" != "$input" ] ; then
    return 1
  else
    return 0
  fi
}

# Sample usage of this function in a script

echo -n "Enter input: "
read input

if ! validAlphaNum "$input" ; then   #// 这个有点巧妙,就是如果函数的返回值为1的话,则执行
  echo "Your input must consist of only letters and numbers." >&2
  exit 1
else
  echo "Input is valid."
fi

exit 0


就像上面所说这脚本流程和思路还是很简明的,就是讲你的输入用sed过滤后于原输入相比较,不相等则输入不合法。
值得注意的地方有
1)  sed -e 's/[^ [:alnum:]]//g'  ([:alnum:]是 大小写字母及数字的意思,这里sed的作用是将非大小写字母及数字过滤掉。
2)  if ! validAlphaNum "$input"   $input作为 函数的参数被调用,注意这里加了引号。

第二集完,待续.... 


 



      本文转自hb_fukua  51CTO博客,原文链接:http://blog.51cto.com/2804976/589458,如需转载请自行联系原作者



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值