五,逻辑操作符
在test,[]中使用的逻辑操作符 | 在[[]],(())中使用的逻辑操作符 | 说明 |
---|---|---|
-a | && | and,与,两端都为真,则结果为真(1) |
-o | || | or,或,两端都有一个为真,则则结果为真 |
! | ! | not,非,两端相反,则为真 |
示例:
ls -l leefile easylee
-rw-r--r-- 1 root 0 Apr 7 23:59 easylee
-rw-r--r-- 1 root 0 Apr 7 23:59 leefile
#test示例:
test -f leefile -a -f easylee && echo yes || echo no
yes
test -f leefile1 -a -f easylee && echo yes ||echo no
no
test -f leefile1 -o -f easylee && echo yes || echo no
yes
test ! -f leefile && echo yes || echo no
yes
test ! -f easylee && echo yse || echo no
no
#[]示例:
[ -f "leefile" -a -f "easylee" ] && echo yes || echo no
yes
[ -f "leefile" -a -f "easylee" ] && echo yes || echo no
no
[ -f "lefile" -o -f "easylee" ] && echo yes || echo no
yes
[ ! -f "lefile" ] && echo yes || echo no
yes
#[[]]示例:
[[ -f "leefile" && -f "easylee" ]] && echo yes || echo no
yes
[[ -f "leefile1" && -f "easylee" ]] && echo yes || echo no
no
[[ -f "leefile1" || -f "easylee" ]] && echo yes || echo no
yes
[[ ! -f "leefile1" ]] && echo yes || echo no
yes
(())演示
A=3
(( $A >=0 && $A<5 )) && echo yes || echo no
yes