shell脚本语言3 (持续更新)

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:查看服务状态脚本

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值