首页 > 其他分享 >06@流程控制之case语句

06@流程控制之case语句

时间:2022-10-09 22:37:59浏览次数:42  
标签:case 语句 06 nginx stop echo start bin egon


文章目录

流程控制之case语句

一、语法

case 变量 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
模式3)
命令序列3
;;
*)

二、案例使用

案例1:(用户登录判断脚本)

#!/bin/bash
read -p "username: " -t 5 username
echo
if [ -z $username ];then
username="default"
fi

case $username in
root)
echo "管理员用户"
;;
egon)
echo "普通用户"
;;
default)
echo "默认用户"
;;
*)
echo "其他用户"

案例2:(nginx启动脚本)

[root@egon shell]# cat nginx_stat.sh 
#!/bin/bash
. /etc/init.d/functions
if [ $# -ne 1 ]
then
echo "USAGE $0 {start|stop|restart}"
exit 1
fi


if [ "$1" == "start" ]
then
action "start nginx" /bin/true
elif [ "$1" == "stop" ]
then
action "stop nginx" /bin/true
elif [ "$1" == "restart" ]
then
action "restart nginx" /bin/true
else
echo "USAGE $0 {start|stop|restart}"
exit 1
fi

[root@egon shell]# chmod +x nginx_stat.sh
[root@egon shell]# ./nginx_stat.sh start
start nginx [ 确定 ]
[root@egon shell]# ./nginx_stat.sh restart
restart nginx [ 确定 ]
[root@egon shell]# ./nginx_stat.sh
USAGE ./nginx_stat.sh {start|stop|restart}

案例3:(nginx启动脚本)

# 储备知识1
netstat -lntup|grep ":80\b" # \b锚定单词的结尾



# 储备知识2
action:打印一段信息并执行给定的命令,然后根据给定命令的执行的结果来调用 success,failure方法,确定最终显示的内容

[root@egon shell]# action "nginx start is" :
nginx start is [ 确定 ]
[root@egon shell]# action "nginx start is" /bin/true
nginx start is [ 确定 ]
[root@egon shell]# action "nginx start is" /bin/false
nginx start is [失败]


# 代码
[root@egon shell]# cat nginx_stat.sh
#!/bin/bash

. /etc/init.d/functions
args=$1

fun(){
[ $? -eq 0 ] && action "Nginx $args is " /bin/true || echo "Nginx $args is " /bin/false
}

case $1 in
start)
netstat -an | grep -i Listen | grep -q "\b80\b"
if [ $? -eq 0 ]
then
echo "Nginx is runing..."
else
/usr/sbin/nginx
fun
fi
;;
stop)
/usr/sbin/nginx -s stop
fun
;;
reload)
/usr/sbin/nginx -s reload
fun
;;
restart)
netstat -lntup|grep ":80\b" &>/dev/null
if [ $? -ne 0 ]
then
/usr/sbin/nginx
[ $? -eq 0 ] && echo "Nginx start is ok" || echo "Nginx start is failed"
else
/usr/sbin/nginx -s stop
[ $? -eq 0 ] && echo "Nginx stop is ok" || echo "Nginx stop is failed"
sleep 2
/usr/sbin/nginx
fun
fi
;;
status)
netstat -lntup|grep ":80\b" &>/dev/null
if [ $? -eq 0 ]
then
echo "Nginx is runing ..."
else
echo "Nginx is not runing ..."
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 2

案例4:(一个简易跳板机脚本 )

# 储备知识
Linux中断信号区别为:键入不同、对应操作不同、启用不同。

1、HUP中断信号:HUP中断信号的对应操作为让进程挂起,睡眠。同<Ctrl+X>

2、INT中断信号:INT中断信号的对应操作为正常关闭所有进程。同<Ctrl+C>

3、TERM中断信号 15:TERM中断信号的对应操作为正常的退出进程。

4、KILL中断信号 9:KILL中断信号的对应操作为强制关闭进程。

5、STOP 19暂停(同 Ctrl + Z)

6、CONT 18继续(与STOP相反, fg/bg命令)

7、TSTP中断信号:TSTP中断信号的对应操作为暂时停用进程。




# 代码
[root@egon shell]# cat jumpserver.sh
#!/bin/bash

cat<<EOF
1. BACKUP 10.0.0.41
2. WEB02 192.168.12.21
3. WEB03 10.0.0.9
EOF
trap "echo 不要乱按键盘,否则服务器将会爆炸" HUP INT TSTP

while true
do
read -p "请输入连接主机编号信息: " num
read -p "请输入账号: " user
# read -p "请输入要执行的命令: " cmd
case $num in
1)
ssh [email protected]
[ $? -ne 0 ] && echo "connect faild"
;;
2)
ssh [email protected]
[ $? -ne 0 ] && echo "connect faild"
;;
*)
echo "请输入连接主机信息"


标签:case,语句,06,nginx,stop,echo,start,bin,egon
From: https://blog.51cto.com/u_15166421/5741845

相关文章

  • 09@流程控制之select语句
    文章目录​​流程控制之select语句​​​​一、语法​​​​二、案例(select的用法)​​​​1、案例:​​​​2、案例:select省略in使用​​​​3、案列(简易跳板机)​​流程控制......
  • 大家都会的switch-case(看看就好)
     众所周知,这个switch-case非常的神奇,自从我学会了这个知识点,我就走上了一条骗分的不归路(合理骗分不算骗嘛) 这周五建兴小哥哥在课上讲解的那题输出九九乘法表大家应该......
  • 2022-2023-1 20221306《计算机基础与程序设计》第六周学习总结
    作业信息 班级链接:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK06作业目标:《计算机科学概论》......
  • while循环语句
    注意事项条件需提供布尔类型结果,True继续,False停止空格缩进不能忘请规划好循环终止条件,否则将无限循环案例1i=0whilei<100:print("小美,我喜欢你")......
  • SQL基础语句入门
    SQL语句入门起因学校开设数据库相关的课程了,打算总结一篇关于基础SQL语句的文章。SQL介绍SQL最早版本是由IBM开发的,一直发展到至今。SQL语言有如下几个部分:数据定义......
  • mysql 中sql 语句查询今天、昨天、近7天、近30天、一个月内、上一月 数据
    几个小时内的数据DATE_SUB(NOW(),INTERVAL5HOUR)今天select * from 表名 where to_days(时间字段名) = to_days(now());昨天SELECT * FROM 表名 WHERE T......
  • 20201306吴龙灿第三章学习笔记
    目录Ⅰ知识点归纳1.进程的概念·什么是进程?·进程的特征动态性并发性独立性异步性结构性·程序和进程主要区别2.多任务处理系统(1)背景(2)多任务处理系统代码介绍3.进程同步(1)同......
  • Go中select条件语句详解
    一select语句select语句类似于switch语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。select是Go中的一个控制结构,类似......
  • if语句
    if语句代码案例age=10ifage>=18:print("我已经成年了")print("即将步入大学生活")print("时间过的真快呀")注意事项判断语句的结果,必须......
  • 20150806
    使用下标的要注意:下标是否在合理范围内0~size()-1语言和操作系统的关系操作系统也是用语言写的.当系统和语言一致时候,有时会感到混淆.初学者在学语言的时候,可能也......