我正在编写一个脚本,检查3个不同的变量并匹配true。但是我需要它只在所有条件匹配时才返回true。现在,如果只有一个或两个条件与我的运算符列表匹配,则返回true。
if [ -z "$VAR3" ] || [ "$VAR1" -ge 10 ] || [ "$VAR2" != "WORKING" ]; then
echo "app failed "$VAR1" check-ins"
exit 2
elif [ -n "$VAR3" ] || [ "$VAR1" -le 10 ] || [ "$VAR2" == "WORKING" ]; then
echo "$VAR3" pid active connection is "$VAR2"
exit 0
fi
我应该只更换||与&& ??
答案 0 :(得分:2)
是的,||
表示OR
逻辑运算符,如果至少有一个运算符为true
,则返回true
。 &&
代表AND
逻辑运算符,当且仅当所有运算符都为true
true
if [ -z "$VAR3" ] && [ "$VAR1" -ge 10 ] && [ "$VAR2" != "WORKING" ]; then
echo "app failed "$VAR1" check-ins"
exit 2
elif [ -n "$VAR3" ] && [ "$VAR1" -le 10 ] && [ "$VAR2" == "WORKING" ]; then
echo "$VAR3" pid active connection is "$VAR2"
exit 0
fi