[root@shell ~]# [[ "$USER" =~ ^r ]] && echo 为真 || echo 为假
为真
[root@shell ~]# [[ "$USER" =~ ^o ]] && echo 为真 || echo 为假
为假
正则比较必须要使用双中括号
比较的时候使用=~这个符号
正则比较的时候的后面的匹配正则不能使用引号括起来
[root@shell ~]# num=123
[root@shell ~]# [[ $num =~ ^[0-9] ]] && echo 为真 || echo 为假
为真
[root@shell ~]# num=12a
[root@shell ~]# [[ $num =~ ^[0-9] ]] && echo 为真 || echo 为假
为真
[root@shell ~]# num=a123
[root@shell ~]# [[ $num =~ ^[0-9] ]] && echo 为真 || echo 为假
为假
[root@shell ~]# num=1a2
[root@shell ~]# [[ $num =~ ^[0-9] ]] && echo 为真 || echo 为假
为真
[root@shell ~]# [[ $num =~ ^[0-9]$ ]] && echo 为真 || echo 为假
为假
[root@shell ~]# num=3
[root@shell ~]# [[ $num =~ ^[0-9]$ ]] && echo 为真 || echo 为假
为真
[root@shell ~]# num=33
[root@shell ~]# [[ $num =~ ^[0-9]$ ]] && echo 为真 || echo 为假
为假
[root@shell ~]# [[ $num =~ ^[0-9]*$ ]] && echo 为真 || echo 为假
为真
[root@shell ~]# num=3a3
[root@shell ~]# [[ $num =~ ^[0-9]*$ ]] && echo 为真 || echo 为假
为假
[root@shell ~]# num=''
[root@shell ~]# [[ $num =~ ^[0-9]*$ ]] && echo 为真 || echo 为假
为真
[root@shell ~]# # * 表示匹配前面的字符出现0次或者0次以上
[root@shell ~]# # + 表示匹配前面的字符出现1次或者1次以上
[root@shell ~]# [[ $num =~ ^[0-9]+$ ]] && echo 为真 || echo 为假
为假
[root@shell ~]# num=134253475839465834
[root@shell ~]# [[ $num =~ ^[0-9]+$ ]] && echo 为真 || echo 为假
为真
[root@shell ~]# num=8957265g89470257489
[root@shell ~]# [[ $num =~ ^[0-9]+$ ]] && echo 为真 || echo 为假
为假
[root@shell ~]# num=qrrwe
[root@shell ~]# [[ $num =~ ^[a-z]+$ ]] && echo 为真 || echo 为假
为真
[root@shell ~]# num=iugheiruA
[root@shell ~]# [[ $num =~ ^[a-z]+$ ]] && echo 为真 || echo 为假
为假
[root@shell ~]# [[ $num =~ ^[a-Z]+$ ]] && echo 为真 || echo 为假
为真
#正则比较示例
判断用户输入的值是否为整数,数字
[root@shell /scripts]# cat if-7.sh
#!/bin/bash
read -p "请输入一个整数:" num
if [[ $num =~ ^[0-9]+$ ]];then
echo "你输入的是一个整数"
else
echo "输入的不是一个整数"
exit
fi
[root@shell /scripts]# sh if-7.sh
请输入一个整数:123
你输入的是一个整数
[root@shell /scripts]# sh if-7.sh
请输入一个整数:12a
输入的不是一个整数
[root@shell /scripts]# sh if-7.sh
请输入一个整数:rgtrh
输入的不是一个整数
[root@shell /scripts]# sh if-7.sh
请输入一个整数:12.5
输入的不是一个整数
[root@shell /scripts]# cat if-8.sh
#!/bin/bash
read -p "请输入一个由字母组成的字符串:" num
if [[ $num =~ ^[a-Z]+$ ]];then
echo "你输入的是一个由字母组成的字符串!"
else
echo "输入的不是一个由字母组成的字符串!"
exit
fi
[root@shell /scripts]# sh if-8.sh
请输入一个由字母组成的字符串:123
输入的不是一个由字母组成的字符串!
[root@shell /scripts]# sh if-8.sh
请输入一个由字母组成的字符串:12as
输入的不是一个由字母组成的字符串!
[root@shell /scripts]# sh if-8.sh
请输入一个由字母组成的字符串:af3
输入的不是一个由字母组成的字符串!
[root@shell /scripts]# sh if-8.sh
请输入一个由字母组成的字符串:ewregrtjyt
你输入的是一个由字母组成的字符串!
[root@shell /scripts]# sh if-8.sh
请输入一个由字母组成的字符串:rgtsrAaAF
你输入的是一个由字母组成的字符串!