Bash:if-then匹配多个条件,如果所有条件都为true
我正在写一个脚本,检查3个不同的变量,并匹配true。然而,我需要它只在所有条件匹配时返回true。现在,如果我的操作符列表中只有一个或两个条件匹配,则返回trueBash:if-then匹配多个条件,如果所有条件都为true,bash,Bash,我正在写一个脚本,检查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 ]
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
如果我只是将| |替换为&&&是,
|
表示或
逻辑运算符,则如果至少有一个运算符为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
您是否尝试将
|
更改为&&
…?您可能会感兴趣地了解。(这也是您不应该将
添加到路径
并命名您的测试程序test
的原因之一)