一、exit、break、continue三者区别
exit 完全中断脚本的执行 |
break 中断脚本的循环,但是会执行循环外的语句 |
continue 跳出本次循环,进行下一次循环 |
进一步了解三者的区别,有如下实验:
[root@localhost mnt]# vim file.sh
执行该脚本:
脚本正常运行情况:
二、for语句
1.格式
for NUM in 1 2 3
for NUM in {1..3}
for NUM in seq 1 3
或者 for NUM in seq 1 2 10
do
done
2.{1..10}与 `seq 1 10`
{1..10}是1到10,`seq 1 10 `也是1到10,但是seq可以设定步长
例如:`seq 1 2 10` 步长为2从1到10
有如下实验:
[root@localhost mnt]# vim for.sh
执行该脚本:
[root@localhost mnt]# vim for.sh
执行该脚本:
编写脚本检测ip是否存在 |
[root@localhost mnt]# vim check_host.sh
#!/bin/bash
for IP in `seq 1 250`
do
ping -c1 -w1 172.25.254.$IP &>/dev/null
[ "$?" -eq "0" ]&&{
echo "172.25.254.$IP is up"
echo " "
}
done
建立一个数据库,编写脚本对所有数据库进行备份操作,每个数据库备份一个文件,以.sql结尾备份到/mnt/mysql_dump |
[root@localhost mnt]# yum install mariadb-server.x86_64 -y ##安装数据库
[root@localhost mnt]# systemctl start mariadb ##开启服务
[root@localhost mnt]# mysql -uroot ##建立数据库
编写脚本:
[root@localhost mnt]# vim mysql_dump.sh
执行脚本:
三、while语句
1.语句格式
while true 当条件为真执行
do
done
2.编写脚本,监控根分区的使用情况,当达到80%时给root发送邮件
查看根分区的使用情况
[root@localhost mnt]# vim checkload.sh
[root@localhost mnt]# sh checkload.sh & ##打入后台
[1] 4859
[root@localhost mnt]# dd if=/dev/zero of=/bigfile bs=1M count=6000##截取6000M的内存使根分区使用率变成80%以上
[root@localhost mnt]# mail
3脚本编写,监控根分区的使用情况,达到80%时自动弹出至当前shell
[root@localhost mnt]# vim checkload.sh
脚本的执行: