for循環
格式:
for i in `seq 1 3` //表示從1-3,運行3次,i=1,i=2,i=3;
do
echo $i //每次執行輸出 變量i的值
done //for循環結尾
或
for i in `seq 1 3`; do echo $i; done
自定義循環次數
a=20
for i in `seq 1 $a`; do echo $i; done
a=`cat /etc/passwd |wc -l` //統計passwd有多少行,賦予值給a
for i in `seq 1 $a`; do echo $i; done //根據a的值來循環多少次,並輸出當前循環值;
while循環
語法:
while 條件;do 語句;done
while : //死循環
do
load=`w|head -1|awk -F 'load average:' '{print $2}'|cut -d. -f1` //顯示w的第一行,並在上面截取load average:爲分隔符的第2行,並截取.前面數字,顯示第一行的數字
if [ $load -gt 10 ] //比較結果是否大於10
then
top|mail -s "load is high: $load" [email protected] //執行發郵件
fi
sleep 30 //等待30秒,再繼續循環
done
break 跳出循環
強制跳出循環break
#!/bin/bash
for i in `seq 1 5` //循環1到5
do
echo $i //先輸出i值
if [ $i == 3 ] //判斷i如果等於3
then
break //跳出循環
fi
echo $i //輸出i值
done
echo "exit" //循環結束後在執行輸出exit
continue 結束本次循環
忽略continue之下的代碼,直接進行下一次循環;
#!/bin/bash
for i in `seq 1 5`
do
echo $i
if [ $i == 3 ]
then
continue
fi
echo $i
done
exit 退出本次腳本
直接退出腳本,後面的腳本全部忽略掉
#!/bin/bash
for i in `seq 1 5`
do
echo $i
if [ $i == 3 ]
then
exit
fi
echo $i
done
echo "aaa"