shell脚本的流程控制是自动化执行任务的核心。通过脚本和流程控制提高效率与操作的准确性的同时,根据不同的的条件执行不同操作以实现智能化处理。
五、流程控制
控制当前语句是否进行执行 或当前语句是否在特定情况下执行
1.条件选择
1.1、选择执行if语句
单分支语句、双分支语句
多分支语句

案例:
systemct status sshd 查看sshd服务是否运行
可用pgrep通过查看运行的pid来确定
脚本:
效果如下
脚本效果改为位置变量 可以随时检查其他程序服务
1.2、条件判断语句:case 语句(案例)
基于模式匹配来执行命令
vim case.sh
结构加案例
案例:nginx管理
chkconfig -add /etc/initd/nginxd centos7之前的服务
systemd管理 centos 7之后的服务
写一个非systemd管理的脚本
将脚本交给service管理 
使用service nginxd stop管理 netstat -anptu | grep nginx
完善版
检测

案例2:菜单
1.3、for循环语句
shell结构:[]闭区间 [) 开区间 {}闭区间
案例:九九乘法表
乘法表加三角形
案例:目录下.xxx 结尾的文件保留后缀 备份(非正则运算)
1.4、while循环语句
for语句是while语句的简便模式 两者类似!
结构和案例:
案例:猜价格小游戏
案例:监控日志
#fuction:持续检查错误日志,如有错误日志则发送警告邮件
负载输出:uptime top-bne静态显示
uptime | tr -s ' ' | cut -d' ' -f 10
grep -i “error” /var/log/messages
案例:while read命令
cp /etc/shadow ./ 提取时间和名字
vim read_shadow.sh


知识回顾:stat查看文件属性
atime访问时间 m(odify)time更改时间 ctime创建时间
exit退出
continue:循环控制语句(直接结束第n层的本轮循环,直接进行下一轮判断;最内层为第一层) break:打破当前循环
示例:continue 1-10 不显示5
break:提前结束循环直接结束 与exit类似 exit一般用来退出当前脚本
shfit :遍历每个参数


check_svc_state.sh:查看服务状态脚本

学习干货仅供学习参考!!!
7892

被折叠的 条评论
为什么被折叠?



