【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"
🐯本质是逻辑符 '&&' '||' 结合项规则
项值为真则执行语句中的逻辑与,为假则执行语句中的逻辑或,逻辑性是单语句传递,后一句是否执行仅依赖前一句,与前前前语句无关,即 '&&' 的后一句是否执行取决于前一句是否为真, '||' 的后一句是否执行取决于前一句是否为假
再牛逼的梦想也架不住傻逼似的坚持