您的位置:首页 > 运维架构 > Linux

Linux中双中括号 [[]] 的用法

2016-06-20 15:15 267 查看
(1)在Linux中双中括号[[]]比单中括号[]更加的通用。双中括号之间的内容均不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。

(2)支持字符串的模式匹配,支持shell的正则表达式,字符串比较时可以把右边当作一个模式而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。[[]]中匹配字符串或者通配符,不需要引号。

(3)在使用[[]]条件判断结构,而不是[],能够防止脚本中的许多逻辑错误。比如&&、||,这些操作符能够正常存在于[[]]中,但是在[]结构中却会报错,比如可以直接使用if[[  $a != 1 && $a !=  2   ]],如果不使用双括号,则if[  $a -ne  1  ]  && [  $a != 2  ]  或者if [  $a -ne 1 -a  $a  != 2  ]

(4)bash 把双括号中的表达式看作是一个单独的元素,并返回一个单独的退出状态码。

if ($a<5)

if [$a -lt  5]

if [$a -ne 1 -a $a != 2]

if [$a -ne 1 ] && [ $a !=2 ]

if [[  $a != 1 && $a != 2  ]]

for a in `seq 0 4`;do echo $a ;done

for ((i=0;i<5;i++));do echo $a;done

for a in {0...4};do echo $a;done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息