20.10 for循环 20.11/20.12 while循环 20.13 break跳出循环 20.14 continue结束本次循环 20.15 exit退出整个脚本
20.11/20.12 while循环
20.13 break跳出循环
20.14 continue结束本次循环
20.15 exit退出整个脚本
for循环
格式:
for 变量名 in 条件
do
command
done
示例:把1-5的数字相加
#!/bin/bash
number=0 ---设置number变量=0
for i in `seq 1 5` ---设置i变量序列为1-5
do
number=$[$number+$i] --再次让number赋值等于 number+i的值
done
echo $number 显示总数
下图是执行过程
示例:用在查找目录
#!/bin/bash
cd /etc/ --进入到目录
for a in `ls /etc/` --设置变量a为 ls /etc/
doif [ -d $a ] 判断如果$a目录存在的话
then
ls -d $a ---显示出来
fi
done
执行过程:
while循环
语法格式
while 条件;
do
command
done
示例;查看系统负载
#!/bin/bash
while :
do
load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1` --设置变量load
if [ $load -gt 10 ] --如果负载大于0
then
/usr/bin/sbin/mail.py [email protected] "$load" "报警“ --发送邮件给用户(这里可以自己写一个发送邮件脚本)
fi
sleep 30 --30秒后再次检查
done
关于load的变量分步解释:
w --查看负载
head -1 ---显示第一行
w|head -1|awk -F 'load average: ' '{print $2}' ---load作分割 打印第二行 (即load为第一行)
w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1 --以.(点)作分割,分割第一段
break跳出循环
#!/bin/bash
for i in `seq 1 4` --变量
do
echo $i
if [ $i -eq 3 ] --当i等于3
then
break --跳出循环
fi
done
echo abcs
执行过程:可以看到当i=3就跳出以下循环,直接运abc结束
continue结束本次循环
#!/bin/bash
for i in `seq 1 4`
do
echo $i
if [ $i -eq 3 ]
then
continue
fi
echo $i
done
echo abcs
执行过程:可以看到一个3,就没了。continue仅仅跳出本次循环,继续下一次循环
exit退出整个脚本
exit直接退出整个脚本
#!/bin/bash
for i in `seq 1 5`
do
echo $i
if [ $i == 3 ]
then
exit
fi
echo $i
done
echo aaaaaaa
执行过程:当i=3 直接退出脚本