如题,下面介绍三种解决方法:
假设现在又一个变量str,如何辨别是否 只有数字、字母、和“=”、“+”、“:”这三个特殊字符
方法一:(该方法也支持ash shell)
case "$str" in
[a-z]|[A-Z]) ;;
[0-9]) ;;
"+") ;;
"=") ;;
":") ;;
....//如有其它字符,自行添加
*)
echo "Invalid Characters"
exit 0;; //检测到不合法字符,结束程序
esac
方法二:(该方法在Linux系统中测试没问题,但是放到板子上跑的时候出问题,如果你的产品shell的语法和Linux系统中的有区别,请测试再使用)
if echo $str |grep -q ^[a-zA-Z0-9] || [ `echo $str |grep "+"` ] || [ `echo $str |grep "="` ] || [ `echo $str |grep ":"` ] ;then
echo "OK" >/dev/null
else
echo "Invalid Characters"
exit 0
fi
方法三:(该种方法在Linux系统测试没问题,但由于产品不支持=~表达式,只能换其它方法)
使用if [[ "str" =~ ^[a-zA-Z0-9] ]]
类似方法二,不再多言