阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

流程控制-case语句

385次阅读
没有评论

共计 2291 个字符,预计需要花费 6 分钟才能阅读完成。

一、条件循环语句 -case

在生产环境中,我们总会遇到一个问题需要根据不同的状况来执行不同的预案,那么我们要处理这样的问题就要首先根据可能出现的情况写出对应预案,根据出现的情况来加载不同的预案。

1.1、case 介绍

特点:根据给予的不同条件执行不同的代码块

比如你去相亲:你会在脑子里出现以下的预案:第一眼看到对方父亲,你应该说:伯父好 第一眼看到对方母亲,你应该说:伯母好 第一眼看到对方奶奶,你应该说:奶奶好。。。。而这个例子中触发就是你第一眼看到了对方的谁,预案则是叫什么称呼。再来说一个计算机的相关例子 --- 监控内存使用率 内存使用率低于 80%,脚本输出:绿色字体的 Memory use xx% 内存使用率大于 80% 小于 90%,脚本输出:黄色字体的 Memory use xx% 内存使用大于 90%,脚本输出:红色字体的 Memory use xx%

1.2、case 语法

case $var in 定义变量;var 代表是变量名 pattern 1) 模式 1; 用 | 分割多个模式,相当于 or command1 需要执行的语句 ;; 两个分号代表命令结束 pattern 2) command2 ;; pattern 3) command3 ;; *) default,不满足以上模式,默认执行 *) 下面的语句 command4 ;; esac esac 表示 case 语句结束

二、案例

案例需求
写一个 nginx 启动管理脚本,可以实现 /etc/init.d/nginx start|stop|restart|status|reload
或者
systemctl start nginx

#!/bin/bash #Description: #Author: www.zutuanxue.com #Created Time: #nginx service manage script #variables nginx_install_doc=/usr/local/nginx proc=nginx nginxd=$nginx_install_doc/sbin/nginx pid_file=$nginx_install_doc/logs/nginx.pid # Source function library. if [-f /etc/init.d/functions];then . /etc/init.d/functions else echo "not found file /etc/init.d/functions" exit fi # 假如 pid 文件存在,那么统计一下 nginx 进程数量 if [-f $pid_file ];then nginx_process_id=`cat $pid_file` nginx_process_num=`ps aux |grep $nginx_process_id|grep -v "grep"|wc -l` fi #function start () {# 如果 nginx 没有启动直接启动,否则报错 已经启动 if [-f $pid_file ]&&[$nginx_process_num -ge 1 ];then echo "nginx running..." else # 如果 pid 文件存在,但是没有进程,说明上一次非法关闭了 nginx, 造成 pid 文件没有自动删除, 所以启动 nginx 之前先删除旧的 pid 文件 if [-f $pid_file ] && [$nginx_process_num -lt 1 ];then rm -f $pig_file # 可以使用两个函数,两种方法来执行命令,并返回执行结果 #1)daemon #2)action 建议这个,简单易用 #echo "nginx start `daemon $nginxd`" action "nginx start" $nginxd fi #echo "nginx start `daemon $nginxd`" action "nginx start" $nginxd fi } stop () {# 判断 nginx 启动的情况下才会执行关闭,如果没启动直接报错,或者提示用户服务没启动, 这里我直接报错的原因是为了给大家演示失败的输出 if [-f $pid_file ]&&[$nginx_process_num -ge 1 ];then action "nginx stop" killall -s QUIT $proc rm -f $pid_file else action "nginx stop" killall -s QUIT $proc 2>/dev/null fi } restart () { stop sleep 1 start } reload () {# 重载的目的是让主进程重新加载配置文件, 但是前提是服务必须开启 # 这里先判断服务是否开启,开启就执行加载,没有开启直接报加载错误 if [-f $pid_file ]&&[$nginx_process_num -ge 1 ];then action "nginx reload" killall -s HUP $proc else action "nginx reload" killall -s HUP $proc 2>/dev/null fi } status () {if [-f $pid_file ]&&[$nginx_process_num -ge 1 ];then echo "nginx running..." else echo "nginx stop" fi } #callable case $1 in start) start;; stop) stop;; restart) restart;; reload) reload;; status) status;; *) echo "USAGE: $0 start|stop|restart|reload|status";; esac

三、学习视频

视频:case 语句介绍
视频:job-Nginx 启动管理脚本
视频:函数与 case 知识图谱总结

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-06-09发表,共计2291字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7789477
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...