【SHELL】[ ]、[[ ]]条件判断结构

🐶输入参数包含 'arg-m' 时,会输出 Hit Arg-M 和 Hit Arg-N

[[ ${EXEC_PARAMS[@]} =~ 'arg-m' ]] && echo "Hit Arg-M" ||
[[ ${EXEC_PARAMS[@]} =~ 'arg-n' ]] && echo "Hit Arg-N" ||
echo "Oh Shit"

🐵可实现多级判断

[[ ${EXEC_PARAMS[@]} =~ 'arg-m' ]] && echo "Hit Arg-M" || {
    [[ ${EXEC_PARAMS[@]} =~ 'arg-n' ]] && echo "Hit Arg-N" ||
    echo "Oh Shit"
}

 

🐼入参2为 '-i' 则输出 a、b、d,入参2为 '-a' 则输出 a、c,入参2为非 '-i'  '-a' 则输出 a、d

[ $2 ] && {
    echo "a"
    [ $2 = '-i' ] && {
        echo "b"
    }
    [ $2 = '-a' ] && {
        echo "c"
    }
} || echo "d"

 🐨入参2为 '-i' 则输出 a、b,入参2为 '-a' 则输出 a、c,入参2为非 '-i'  '-a' 则输出 a、d

[ $2 ] && {
    echo "a"
    [ $2 = '-i' ] && {
        echo "b"
    } || {
        [ $2 = '-a' ] && {
            echo "c"
        }
    }
} || echo "d"

 

🐯本质是逻辑符 '&&' '||' 结合项规则

项值为真则执行语句中的逻辑与,为假则执行语句中的逻辑或,逻辑性是单语句传递,后一句是否执行仅依赖前一句,与前前前语句无关,即 '&&' 的后一句是否执行取决于前一句是否为真, '||' 的后一句是否执行取决于前一句是否为假

posted @ 2022-11-25 16:51  壹点灵异  阅读(30)  评论(0编辑  收藏  举报