(一)for 语句:
循环定义变量,依次执行,批量处理;
有以下几种格式:
for NUM in 1 2 3
for NUM in {1..3}
for NUM in {a..f}
for NUM in `seq 1 3 `
for NUM in `seq 1 2 10` //可以设定步长;2就是步长,输出为 1 3 5
还可以是计算的方式(和C语言类似)
for((A=1;A<=10;A++))
do
done
1)脚本示例:
把所有的数据库备份成文件,执行脚本文件备份的数据库放在/mnt/mysql_dump/目录下,并且文件属性为.sql
vim /mnt/mysql-dump.sh
#!/bin/bash
DATABASE_MESSAGE=`mysql -uroot -EN -e "show databases;" | grep -E "^\*|schema$" -v`
mkdir -p /mnt/mysql_dump
for DATABASE in $DATABASE_MESSAGE
do
mysqldump -uroot $DATABASE > /mnt/mysql_dump/$(DATABASE).sql
[ "$?" -eq "0" ] && {
echo -e "\033[31m$DATABASE is backuped!\033[0m"
}
done
sh /mnt/mysql-dump.sh
测试:查看/mnt/mysql_dump目录下是否有以sql结尾的文件.
(二)while 语句
格式:
while 判断条件
do 动作
done
示例:1)刷新时间
vim /mnt/test.sh
2)如果分区使用率超过80%,系统提出报警;
vim /mnt/test.sh
#!/bin/bash
DATA=`df | awk -F " " '/\/$/{print $5}' | awk -F "%" '{print $1}'`
while ture
do
[ "$DATA" -ge "80" ]&&{
echo your / will full! | mail -s warning root
sleep 1
}
done
sh /mnt/test.sh
可以看到用户收到了邮件:
exit 、break 和 continue 的区别
exit | 退出当前执行的脚本 |
---|---|
break | 中断当前的循环,不会影响循环以外的语句 |
continue | 提前跳出循环,提前进入下一次 |
实验证明(exit、break和continue的区别):
扫描二维码关注公众号,回复:
1690442 查看本文章
[root@desktop mnt]# vim /mnt/test.sh
#!/bin/bash
for NUM in {1..5}
do
if
["$NUM" -eq 3]
then
$1
fi
echo $NUM
done
echo hello westos!!
[root@desktop mnt]# sh test1.sh break
1
2
hello westos!!
[root@desktop mnt]# sh test1.sh exit
1
2
[root@desktop mnt]# sh test1.sh continue
1
2
4
5
hello westos!!