bash中测试语句
时间:2009-02-25 来源:linuxty
内置命令test根据表达式expr求值的结果返回 0(真)或1(假).
[]等同于test.
改变运算优先级使用 \( \) 逻辑运算使用 -a -o
[ $T = 1 -o \( $T = 0 -a $X -eq 8 \) ]
[[]]可以使用更通用的语法,改变优先级用(),逻辑运算用&& ||
[[ $T = 1 || ( $T = 0 && $X -eq 8 ) ]]
通配符匹配
[[ "abc" == aa* ]] ;echo $? //返回1(假)
正则表达式
[[ "abc" =~ aa* ]] ;echo $? //返回0(真)
因为通配符和正则表达式*的意思不同.
注:[]中的==是等于的意思,不会进行通配符匹配.且在[]中不支持=~.
摘自http://www.ibm.com/developerworks/cn/linux/l-bash-test.html
[]等同于test.
改变运算优先级使用 \( \) 逻辑运算使用 -a -o
[ $T = 1 -o \( $T = 0 -a $X -eq 8 \) ]
[[]]可以使用更通用的语法,改变优先级用(),逻辑运算用&& ||
[[ $T = 1 || ( $T = 0 && $X -eq 8 ) ]]
通配符匹配
[[ "abc" == aa* ]] ;echo $? //返回1(假)
正则表达式
[[ "abc" =~ aa* ]] ;echo $? //返回0(真)
因为通配符和正则表达式*的意思不同.
注:[]中的==是等于的意思,不会进行通配符匹配.且在[]中不支持=~.
摘自http://www.ibm.com/developerworks/cn/linux/l-bash-test.html
相关阅读 更多 +