= 等于,如:if [ "$a" = "$b" ]
== 等于,如:if [ "$a" == "$b" ],与=等价
注意:==的功能在[[]]和[]中的行为是不同的,如下:
1、[[ $a == z* ]] # 如果$a以"z"开头(模式匹配)那么将为true
示例:
~]# if [[ $a == z* ]]; then echo 'true'; fi
~]#
~]#
~]# a=zzz
~]#
~]# if [[ $a == z* ]]; then echo 'true'; fi
true
2、[[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true
示例:
~]# a=z*
~]#
~]# if [[ $a == "z*" ]]; then echo 'true'; fi
true
3、[ $a == z* ] # File globbing 和word splitting将会发生
4、[ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true
示例:
~]# a=z*
~]#
~]# if [ $a == "z*" ]; then echo 'true'; fi
true
一点解释,关于File globbing是一种关于文件的速记法,比如"*.c"就是,再如~也是.
但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像.
shell[]和[[]]一些区别
最新推荐文章于 2024-06-15 09:45:00 发布