- 注意
表达式 [] 中变量需要用双引号”“引用, 否则某些情况会导致判断结果有误, [[]] 中可用可不用
- == (等于) 和 != (不等于)
v1='A'
v2='B'
v3='A'
[[ $v1 == $v2 ]] && echo 'true' || echo 'false'
[[ $v1 == $v3 ]] && echo 'true' || echo 'false'
[[ $v1 != $v2 ]] && echo 'true' || echo 'false'
[[ $v1 != $v3 ]] && echo 'true' || echo 'false'
# false
# true
# true
# false
- =~ 判断字符串是否被包含(区分大小写)
v='Hello World'
[[ $v =~ 'hello' ]] && echo 'Y' || echo 'N'
[[ $v =~ 'Hello' ]] && echo 'Y' || echo 'N'
[[ $v =~ 'World' ]] && echo 'Y' || echo 'N'
[[ $v =~ 'test' ]] && echo 'Y' || echo 'N'
# N
# Y
# Y
# N
- -n 判断字符串长度不为0
v1='123456'
v2=''
[[ -n $v1 ]] && echo 'not empty' || echo 'empty'
[[ -n $v2 ]] && echo 'not empty' || echo 'empty'
[ -n "$v1" ] && echo 'not empty' || echo 'empty'
[ -n "$v2" ] && echo 'not empty' || echo 'empty'
# not empty
# empty
# not empty
# empty
- -z判断字符串长度为0
v1='123456'
v2=''
[[ -z $v1 ]] && echo 'empty' || echo 'not empty'
[[ -z $v2 ]] && echo 'empty' || echo 'not empty'
[ -z "$v1" ] && echo 'empty' || echo 'not empty'
[ -z "$v2" ] && echo 'empty' || echo 'not empty'
# not empty
# empty
# not empty
# empty