我想在Bash中对以下条件表达式使用逻辑非,该如何做?
if [[ $var==2 || $var==30 || $var==50 ]] ; then
do something
fi
我该如何直接在上面的表达式中使用逻辑非运算符,而不是像这样再次将其改为非常麻烦的形式:
if [[ $var!=2 && $var!=30 && $var==50 ]] ; then
do something
fi
谢谢任何提示!
我想在Bash中对以下条件表达式使用逻辑非,该如何做?
if [[ $var==2 || $var==30 || $var==50 ]] ; then
do something
fi
我该如何直接在上面的表达式中使用逻辑非运算符,而不是像这样再次将其改为非常麻烦的形式:
if [[ $var!=2 && $var!=30 && $var==50 ]] ; then
do something
fi
谢谢任何提示!
if ! [[ $var == 2 || $var == 30 || $var == 50 ]] ; then
do something
fi
或者:
if [[ ! ($var == 2 || $var == 30 || $var == 50) ]] ; then
do something
fi
一个好的实践是在条件运算符和操作数之间留有空格。
有些人也建议,如果你只是比较数字,使用算术运算符,或者只使用(( ))
:
if ! [[ var -eq 2 || var -eq 30 || var -eq 50 ]] ; then
do something
fi
if ! (( var == 2 || var == 30 || var == 50 )) ; then
do something
fi
虽然不值得赞扬或者应该注意的是,如果$var
有时候不是数字或者没有值或未设置,因为它可能意味着0作为默认值或者另一个变量的另一个值(如果它是一个变量的名称)。