此处判断输入的字符类型用到了正则,流程主要如下:
1.读取控制台输入的字符;
2.对输入的字符进行判断,是数字,字符串,还是其他字符;
3.如果是数字,判断输入的数字与给定数字的大小关系;
4.如果非数字,则控制台给与提示。
脚本如下:
#!/bin/bash
read -p "请输入一个数字:" num
# 实现判断输入的字符是数字还是字母或者是其他符号
function isNum(){
if [[ $1 =~ ^[a-zA-Z]+$ ]] # 正则匹配多个输入的字符
then
echo "$1 是纯字母"
return 1
elif [[ $1 =~ ^[0-9]+$ ]] # 匹配多个数字
then
echo "$1是纯数字"
return 0
else
echo "$1是其他字符"
return 1
fi
}
# 调用函数
isNum $num
#判断函数的返回结果
if [ $? == 0 ]
then
if [ $num -gt 10 ]
then
echo "$num 大于10"
elif [ $num -eq 10 ]
then
echo "$num 等于10"
else
echo "$num 小于10"
fi
else
echo "输入内容不符合要求"
fi
echo "结束!"
测试结果如下:
1.输入字符串
请输入一个数字:werwe
werwe 是字母
输入内容不符合要求
结束!
2.输入数字
请输入一个数字:234234
234234是数字
234234 大于10
结束!
3.输入其他字符
请输入一个数字:!@#$
!@#$是其他字符
输入内容不符合要求
结束!