;;
在包含嵌套case
的bash脚本中,我是否有足够(或可能太多)的终止符?
case "$1" in
OK)
# Nothing needs done
echo -n "OK:1" ;;
CRITICAL)
case "$2" in
SOFT)
case "$3" in
1|2)
soft_reset_pool.sh ;;
esac ;;
HARD)
case "$3" in
1|2)
hard_reset_pool.sh ;;
3|4)
hard_reset_service ;;
esac ;;
esac ;;
esac
自从我大发脾气以来已经有好几年了。
如果在;;
s上使用明智的缩进,则更容易保持跟踪。
case "$1" in
OK)
# Nothing needs done
echo -n "OK:1"
;;
CRITICAL)
case "$2" in
SOFT)
case "$3" in
1|2)
soft_reset_pool.sh
;;
esac
;;
HARD)
case "$3" in
1|2)
hard_reset_pool.sh
;;
3|4)
hard_reset_service
;;
esac
;;
esac
;;
esac
它们匹配得很好,每个case
标签)
都有一个终止符;;
就是说,有时候将所有内容折叠成一个非嵌套更容易和/或更清晰case
:
case "$1:$2:$3" in
OK:*)
# Nothing needs done
echo -n "OK:1"
;;
CRITICAL:SOFT:[12])
soft_reset_pool.sh
;;
CRITICAL:HARD:[12])
hard_reset_pool.sh
;;
CRITICAL:HARD:[34])
hard_reset_service
;;
esac
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句