我希望我的motd能够很好地概述我的系统状态。 ATM我试图检查deamon是否正在运行,并根据它的状态对其进行着色。
通常你会输入deamon_name status
并输出类似Deamon_name running / not running
的内容。我得到了它,我检查是否包含Not
。这很有用。
然后我注意到,当我实际登录并触发MOTD时,我得到了一些错误的信息,然后我注意到我需要使用dash
而不是bash或shell。
现在我的比较功能已经不再适用了。
if [[ $Server_name =~ .*Not.* ]]
then
printf "NOT RUNNING";
else
printf "RUNNING";
fi
这是我的比较功能和检查(后来我想添加颜色红/绿)
$ Server_name Not running.
或running
答案 0 :(得分:3)
在dash
中,您可以使用案例陈述进行模式匹配,这也适用于bash
:
case $Server_name in
(*Not*) printf "NOT RUNNING" ;;
(*) printf "RUNNING"
esac
或
case $Server_name in
(*Not*) printf "NOT "
esac
printf "RUNNING"
答案 1 :(得分:0)
我通过比较init脚本中的整个Server Running
或Not Running
字符串来解决它,因为我知道这些消息和破折号不支持扩展功能,这似乎是合适的。
if [ "$ServerName" = "Not running." ] # I know those messages
then
printf '%b' "\033[31;1mNOT RUNNING\033[0m" # print NOT RUNNING in red
else
printf '%b' "\033[32;1mRUNNING\033[0m" # print RUNNING in greend
fi
printf "\n"