如何在bash中使用复杂条件表达的逻辑而不是操作员? 我想拥有逻辑,而不是在bash中以下条件表达式 我该怎么做? 如果[[$ var == 2 || $ var == 30 || $ var == 50]];然后 做某事 fi 我该如何准备日志...

问题描述 投票:0回答:1
我怎么能在上述表达式中直接准备逻辑,再次将其更改为类似的事物是非常繁琐的:

if [[ $var!=2 && $var!=30 && $var==50 ]] ; then do something fi
thanks表示任何提示!

if ! [[ $var == 2 || $var == 30 || $var == 50 ]] ; then
  do something
fi

或:
bash conditional-statements logical-operators
1个回答
51
投票
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

尽管有时可能不是数字或没有值或不设置的值,但仍不值得称赞或谨慎,因为如果它是变量的名称,则可能表示为0或其他变量的另一个值。
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.