LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1028|回复: 1

if后面的方括号数

[复制链接]
发表于 2010-5-21 16:38:29 | 显示全部楼层 |阅读模式
平时写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在处理一个方括号包含的条件判断和两个方括号包含的条件判断时,有些什么区别?
发表于 2010-5-26 14:29:30 | 显示全部楼层
man bash
然后搜索 Compound

一两页内,都是你需要的内容。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表