Shell中對多個邏輯判斷結果取非
1 前言
當一個if條件語句中,有多個邏輯判斷的時候,想對這多個邏輯判斷的結果取非,如何進行操作呢?
比如如下的邏輯判斷:
if [ -n "$name" -a $name == "bulingfeng" ]
直接在if后面加個!
后,發現語法異常了;
2 解決方案
把整個[ ]
使用()進行包裹,然后進行取非即可,樣例如下:
if !([ -n "$name" -a $name == "bulingfeng" ])
3 拓展
如果你是使用(( ))
和[[ ]]
來進行的邏輯判斷,同樣使用( ) 把其進行包裹,然后取非即可;