如何在bash脚本的if-else中混合和/或运算符?
我一直在努力寻找例子,但一无所获 我试图在bash中将这个表达式(不那么复杂)写成if-else语句如何在bash脚本的if-else中混合和/或运算符?,bash,Bash,我一直在努力寻找例子,但一无所获 我试图在bash中将这个表达式(不那么复杂)写成if-else语句 if (expr1 and (expr2 or expr3)) then do-something fi 你知道怎么做吗?谢谢通常的表达方式是: if [ expr1 ] && [[ expr2 || expr3 ]]; then # do something fi 而不是使用test命令并使用以下形式: EXPR1 -o EXPR2 True if eithe
if (expr1 and (expr2 or expr3)) then
do-something
fi
你知道怎么做吗?谢谢通常的表达方式是:
if [ expr1 ] && [[ expr2 || expr3 ]]; then
# do something
fi
而不是使用test命令并使用以下形式:
EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.
从帮助[[
:
EXPR1 || EXPR2 True if either EXPR1 or EXPR2 is true; else false
你可以像我一样
if [ expr1 ] && ([ expr2 ] || [ expr3 ]); then
#do something
else
#do something else
fi
有一个简单的技巧可以用来快速测试条件:
[ expr1 ] && ([ expr2 ] || [ expr3 ]) && echo "something" || echo "something else"
如果[expr1]&&[expr2-o expr3],您可以使用
,但我不确定这是否是最好的方法。尽管如此:[“$a”-eq 1]&&&&[“$b”-eq 3-o”$c”-eq 2]&&echo“yes”
a和(b或c)
与b或c和a相同
请参见此处的第7.2.4章:cond&&ifies | | ifno
-这很好,但必须小心,因为当ifes
失败时,无论如何你都会以ifno
结束。。。