Shell脚本应用(三)

Shell脚本应用

技能展示:
学会使用for.while循环语句
学会使用case分支语句

简介
除了上一章学习的if条件语句之外,作为一种脚本编程语言,Shell同样包含循环,分支等
其他程序控制结构,从而能够轻松完成更加复杂,强大的功能。
本次将学习for.while.case语言的具体应用。

重 点
for.while循环语句
case分支语句

理论讲解
使用for循环语句
在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对
象不一样,其他命令相同。例如,根据通讯录中的姓名列表创建系统账号,根据服务器清单
检查各主机的存活状态,根据IP地址黑名单设置拒绝访问的防火墙策略等。
当面对各种列表重复任务时,使用简单的if语句已经难以满足要求,而顺序编写全部代码更是显得异常烦琐,困难重重。本次将要学习的for循环语句,可以很好地解决类似问题。
1.for语句的结构
使用for循环语句时,需要指定一个变量及可能的取值列表,针对每个不同的取值重复执行
相同的命令序列,直到变量值用完退出循环。在这里."取值列表"称为for语句的执行条件,其
中包括多个属性相同的对象,需要预先指定(如通讯录.IP黑名单)。
for循环语句的语法结构如下所示。
在这里插入图片描述
上述语句结构中,for语句的操作对象为用户指定名称的变量,并通过in关键字为该变量预
先设置一个取值列表,多个取值之间以空格进行分隔。位于do~done之间的命令序列称为循
环体,其中的执行语句需要引用变量以完成相应的任务。
for语句的执行流程;首先将列表中的第一个取值赋给变量,并执行do~done循环体中的命令
序列;然后将列表中的第二个取值赋给变量,并执行循环体中的命令序列~~依次类推,直到列表中的所有取值用完,最后将跳至done语句,表示结束循环,如下图。
在这里插入图片描述
操作
一.for循环
1.for循环语法结构
for 变量名 in 取值列表
do
命令序列
done
2.使用for循环
1)创建取值列表
[[email protected] ~]# vim username.txt
在这里插入图片描述
2)编写for循环脚本
[[email protected] ~]# vim useradd.sh
[[email protected] ~]# cat useradd.sh
在这里插入图片描述3)删除指定用户
[[email protected] ~]# vim deluser.sh
[[email protected] ~]# cat deluser.sh
在这里插入图片描述
3.使用for循环测试网络连接性
[[email protected] ~]# vim ./pinghost.sh
[[email protected] ~]# cat ./pinghost.sh
在这里插入图片描述
在这里插入图片描述
二.while循环
1.while循环语法结构
while [ 条件 ]
do
命令序列
done
2.创建用户名以stu开头数字随机
[[email protected] ~]# vim whileadduser.sh
在这里插入图片描述
3.删除用户
[[email protected] ~]# vim whiledeluser.sh
[[email protected] ~]# cat whiledeluser.sh
在这里插入图片描述
三.$case服务控制
在这里插入图片描述
在这里插入图片描述

1.case语法结构
case 变量值 in
模式1)
;;
模式2)
;;
*)
默认命令序列
esac
2.编写控制vsftpd脚本
[[email protected] ~]# vim vsftpd.sh
[[email protected] ~]# cat whiledeluser.sh
[[email protected] ~]# chmod +x vsftpd.sh
在这里插入图片描述
在这里插入图片描述
3.for.while.case的区别
1)for
根据列表内容进行循环遍历数据使用
2)while
根据初始化随机循环使用
3)case
写服务控制脚本使用

实验
在这里插入图片描述
按照实验要求创建脚本getarp
在这里插入图片描述

验证脚本
在这里插入图片描述

在做脚本scanhost
在这里插入图片描述
测试脚本:
在这里插入图片描述 操作完成,拜拜