Bash:如果然后匹配多个条件,如果一切都是真的

时间:2016-06-01 20:28:28

标签: 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 ] || [ "$VAR2" == "WORKING" ]; then
    echo "$VAR3" pid active connection is "$VAR2"
    exit 0
fi

我应该只更换||与&& ??

1 个答案:

答案 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