在if结构的判断条件中既可以使用通配符,也可以使用正则表达式
在什么情况下*会被理解为正则表达呢
# echo $USER
root
# if [[ $USER = r* ]];then echo $USER;fi
root
# if [[ $USER == [abr]* ]];then echo $USER;fi
root
# if [[ $USER = ra*oot ]];then echo $USER;fi
#
在if结构的判断条件中既可以使用通配符,也可以使用正则表达式
在什么情况下*会被理解为正则表达呢
# echo $USER
root
# if [[ $USER = r* ]];then echo $USER;fi
root
# if [[ $USER == [abr]* ]];then echo $USER;fi
root
# if [[ $USER = ra*oot ]];then echo $USER;fi
#
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
如果要使用正则表达式,那么*符号必须出现在表达式的结尾。所以你不能将*看作是正则表达式的一部分。
例如:
if [[ $USER =~ ^[a-z]+$ ]]; then
# Do something
fi
在这个例子中,我们希望用户的名字只包含小写字母,因此正则表达式 ^[a-z]+$ 将被解释为匹配以小写字母开始且后面跟着一个或多个任何字符(包括空格)的字符串。