我有一个监视工具,它检查TCP端口,然后在端口没有监听时发出警报。我想让健康检查更加智能化,这样当系统关闭/重新启动时,它就不会发出警报。我正在考虑做这样的事情:
#!/bin/bash
if [ "$(runlevel)" = "2" ] #I use "=" instead of "-eq" because runlevel might be "s"
then
#do health check
else
#skip health check
fi
有更好的方法吗?
发布于 2013-09-20 20:19:41
或者,您可以使用case语句:
case $(runlevel) in
2)
# do health check
;;
s)
# do other things
;;
*)
# skip doing anything
;;
esac
此外,在bash中,建议使用[[ ]]
而不是[ ]
,因为它不会将变量的值与IFS分割,并使它们受制于路径名展开。
if [[ $(runlevel) == 2 ]]
==
在某种程度上也比单个=
更易读,但是在添加glob模式时要小心。
https://stackoverflow.com/questions/18925118
复制相似问题