|
平时写Bash的脚本,在if后面都是放一个方括号的,平日到也相安无事
a=1
if [ $a -eq 1 ]; then
echo $a
fi
直到今天要想用到正则表达式的时候,才发现编译出错。再一查,原来要求两个方括号
a="**Type:Customer**"
reg='\*\*Type [A-Za-z]+)\*\*'
if [[ $a =~ $reg ]]; then
echo ${BASH_REMATCH[1]}
fi
而且,发现如果我把第三行改成
if [[ "$a" =~ "$reg" ]]; then
则条件判断不成立
所以想问:
1. 为什么=~就需要两个方括号?
2. Bash在处理一个方括号包含的条件判断和两个方括号包含的条件判断时,有些什么区别? |
|