shell脚本(三)
shell脚本(三)
在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令相同。例如,根据通讯录中的姓名列表创建系统账号,根据服务器清单检查各主机的存活状态,根据P地址黑名单设置拒绝访问的防火墙策略等。当面对各种列表重复任务时,使用简单的if语句已经难以满足要求,而顺序编写全部代码更是
显得异常烦琐.困难重重。
for语句的结构
for 变量名 in 取值列表
do
命令列
done
while语句的结构
while 条件
do
命令列
done
case语句的结构
case 变量名 in
模式1)
命令列
;;
模式2)
命令列
;;
…
*)
命令
esac
实验需求
1、编写getarp脚本
[[email protected] ~]# vim getarp.sh
要ping网段所有地址的话 将30改为255即可
ping网段中的1到100的ip ping之后将把ip和MAC保存到arp添加一下命令
arp | awk ‘{print $1,$3}’ | grep -v ens32 >> /etc/ether
查看ether文件
手动调整ether文件顺序
[[email protected] ~]# vim /etc/ether
2、编写scanhost脚本
[[email protected] ~]# vim scanhost.sh
测试ip是否打开ftp匿名登录
[[email protected] ~]# vim scanhost.sh