Shell中对多个逻辑判断结果取非
1 前言
当一个if条件语句中,有多个逻辑判断的时候,想对这多个逻辑判断的结果取非,如何进行操作呢?
比如如下的逻辑判断:
if [ -n "$name" -a $name == "bulingfeng" ]
直接在if后面加个!
后,发现语法异常了;
2 解决方案
把整个[ ]
使用()进行包裹,然后进行取非即可,样例如下:
if !([ -n "$name" -a $name == "bulingfeng" ])
3 拓展
如果你是使用(( ))
和[[ ]]
来进行的逻辑判断,同样使用( ) 把其进行包裹,然后取非即可;