shell脚本(三)

shell脚本(三)

在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令相同。例如,根据通讯录中的姓名列表创建系统账号,根据服务器清单检查各主机的存活状态,根据P地址黑名单设置拒绝访问的防火墙策略等。当面对各种列表重复任务时,使用简单的if语句已经难以满足要求,而顺序编写全部代码更是
显得异常烦琐.困难重重。

for语句的结构

​ for 变量名 in 取值列表

​ do

​ 命令列

​ done

shell脚本(三)

while语句的结构

​ while 条件

​ do

​ 命令列

​ done

shell脚本(三)

case语句的结构

​ case 变量名 in

​ 模式1)

​ 命令列

​ ;;

​ 模式2)

​ 命令列

​ ;;

​ …

​ *)

​ 命令

​ esac

shell脚本(三)

实验需求

shell脚本(三)

1、编写getarp脚本

​ [[email protected] ~]# vim getarp.sh

shell脚本(三)

要ping网段所有地址的话 将30改为255即可

ping网段中的1到100的ip ping之后将把ip和MAC保存到arp添加一下命令

arp | awk ‘{print $1,$3}’ | grep -v ens32 >> /etc/ether

shell脚本(三)

查看ether文件

shell脚本(三)

手动调整ether文件顺序

​ [[email protected] ~]# vim /etc/ether
shell脚本(三)

2、编写scanhost脚本

[[email protected] ~]# vim scanhost.sh

shell脚本(三)

测试ip是否打开ftp匿名登录

[[email protected] ~]# vim scanhost.sh

shell脚本(三)