我一直试图找到例子,但却无处可去。
我试图将这个表达式(不那么复杂)写成bash中的if-else语句。
if (expr1 and (expr2 or expr3)) then
do-something
fi
有什么想法可以做到吗?感谢
答案 0 :(得分:2)
表达它的通常方式是:
if [ expr1 ] && [[ expr2 || expr3 ]]; then
# do something
fi
而不是使用测试命令并使用以下形式:
EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.
来自help [[
:
EXPR1 || EXPR2 True if either EXPR1 or EXPR2 is true; else false
答案 1 :(得分:0)
你可以这样做
if [ expr1 ] && ([ expr2 ] || [ expr3 ]); then
#do something
else
#do something else
fi
你可以使用一个巧妙的技巧来快速测试一个条件:
[ expr1 ] && ([ expr2 ] || [ expr3 ]) && echo "something" || echo "something else"