Shell脚本使用case语句编写系统服务脚本

1、case语句执行流程:

Shell脚本使用case语句编写系统服务脚本
case语句可以很好的代替if语句中的多分支结构,使用case分支语句时,有几个值得注意的特点如下所述:

  • case行尾必须是单词“in”,每一模式必须以右括号“)”结束;

  • 双分号“;;”表示命令序列的结束;

  • 模式字符串,可以用方括号表示一个连续的范围,如"[0-9]",还可以使用竖杠“|”表示或,如“A|B”;

  • 最后的“ ) ”表示默认模式,其中的表示通配符;

2、用case语法写一个系统服务脚本:

下面的sleep命令用来暂停指定描述的时间,可根据自己需要改为相应后台服务的控制命令序列。

[root@centos01 ~]# vim myprog
#!/bin/bash
case "$1" in
start)
        echo -n "正在启动sleep服务..."
if
         sleep 7200 &
then
        echo "OK"
fi
;;
stop)
        echo -n "正在停止sellp服务。。。"
        pkill "sleep" &> /dev/null
        echo "OK"
;;
status)
if 
        pgrep "sleep" &> /dev/null
then
        echo "sleep服务已经启动。"
else
        echo "sleep服务已经停止。"
fi
;;
restart)
$0 stop
$0 start
;;
\*)
echo "用法:$0 { start | stop | status | restart }"
esac

#保存退出,测试脚本:

[root@centos01 ~]# chmod 744 myprog
[root@centos01 ~]# ./myprog.sh stop
正在停止sellp服务。。。OK
[root@centos01 ~]# ./myprog status
sleep服务已经启动。
[root@centos01 ~]# ./myprog start
正在启动sleep服务...OK

3、用case语句编写Nginx服务控制脚本

[root@centos01 ~]# vim nginx.sh           <!--创建脚本-->
#!/bin/bash
#chkconfig: 35 90 30
#description:nginx server
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
        echo "正在启动Nginx服务!!!"
;;
stop)
kill -s QUIT $(cat $PIDF)
        echo "正在停止Nginx服务!!!"
;;
restart)
        echo "正在重新启动Nginx服务!!!"
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage:$0 (start|stop|restart|reload)"
exit 1
esac
exit 0
<!--保存退出,添加执行权限-->
[root@centos01 ~]# chmod +x nginx.sh        <!--脚本添加执行权限-->
[root@centos01 ~]# ./nginx.sh start   <!--启动Nginx-->
正在启动Nginx服务!!!
[root@centos01 ~]# !net         <!--查看是否启动-->
netstat -anptu |grep nginx 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      29899/nginx: master
[root@centos01 ~]# ./nginx.sh restart      <!--重新启动Nginx-->
正在重新启动Nginx服务!!!
正在停止Nginx服务!!!
正在启动Nginx服务!!!
[root@centos01 ~]# !net        <!--查看Nginx是否在运行-->
netstat -anptu |grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      29918/nginx: master
[root@centos01 ~]# ./nginx.sh stop       <!--停止Nginx-->
正在停止Nginx服务!!!
[root@centos01 ~]# !net      <!--验证Nginx是否停止-->
netstat -anptu |grep nginx

————————————本文到此结束,感谢观看——————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值