当我们在Linux系统中部署自己的应用后,可能需要提供快捷的命令来查询当前应用的状态,以及启停应用,即在一个sh脚本中提供start/stop/restart/status/version等操作,这些操作的执行结果可以在终端友好的展示,例如启动成功显示done,启动失败显示failed,执行./xxx.sh status查询当前应用状态,正在运行显示running,停止则显示unused等等,那么怎么友好展示呢?
下面提供了一个展示的方法,如下图,脚本判断执行结果后在终端右下角展示不同颜色的结果
rc.status.sh
#!/bin/bash
columns=$(stty size | awk '{print $2}')
esc=`echo -en "\033"`
extd="${esc}[1m"
warn="${esc}[1;31m"
done="${esc}[1;32m"
attn="${esc}[1;33m"
blue="${esc}[1;34m"
norm=`echo -en "${esc}[m\017"`
stat=`echo -en "\015${esc}[${columns}C${esc}[10D"`
rc_running="${stat}${done}running${norm}"
rc_unused="${stat}${extd}unused${norm}"
rc_done="${stat}${blue}done${norm}"
rc_failed="${stat}${warn}failed${norm}"
rc_dead="${stat}${warn}dead${norm}"
rc_unknown="${stat}${attn}unknown${norm}"
echo -e "${rc_running}"
echo -e "${rc_done}"
echo -e "${rc_unused}"
echo -e "${rc_failed}"
echo -e "${rc_dead}"
echo -e "${rc_unknown}"
echo -e "\015\033[${columns}C\033[10D\033[1;35mRealJt\033[m\017"
exit 0