語法:for 變量名 in 條件; do …; donebash
案例1:計算1到100的和spa
#!/bin/bash sum=0 for i in `seq 1 100` do sum=$[$sum+$i] echo $i done echo $sum
案例2(文件列表循環):3d
#!/bin/bash cd /etc/ for a in `ls /etc/` do if [ -d $a ] then ls -d $a fi done
注意: for循環 空格和回車做爲分隔符code
語法: while 條件; do … ; doneblog
案例1:毎30s查看系統負載,超過10發郵件字符串
#!/bin/bash while : //:表示死循環 do load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d . -f1` if [ $load -gt10 ] then /usr/local/sbin/mail.py 125455@qq.com "load high" "$load" fi sleep 30 done
案例2: 在循環過程當中人爲交互輸入一個數字input
#!/bin/bash while : do read -p "please input a number:" n if [ -z "$n" ] then echo "你須要輸入東西" continue //繼續執行以前的命令 fi n1=`echo $n|sed 's/[ 0-9 ]//g'` if [ ! -z "$n1" ] then echo "你只能輸入一個數字" continue fi break //退出循環 done echo $n
案例:it
#!/bin/bash for i in `seq 1 5` do echo $i if [ $i == 3 ] then break fi echo $i done echo aaaaa
對數字比較最好用eqfor循環
比較字符串用==class
•忽略continue之下的代碼,直接進行下一次循環
#!/bin/bash for i in `seq 1 5` do echo $i if [ $i == 3 ] then continue fi echo $i done echo aaaaa
對比:
continue
break
#!/bin/bash for i in `seq 1 5` do echo $i if [ $i==3 ] then exit fi echo $i done echo aaaaa
continue:結束本次循環,繼續循環
break:退出整個循環
exit: 退出整個腳本