#!/bin/bash sum=0 for i in `seq 1 100` #seq 1到100個數字 do sum=$[$sum+$i] echo $i done echo $sum
#!/bin/bash cd /etc/ for a in `ls /etc/` do if [ -d $a ] then ls -d $a fi done
[root@yong-01 shell]# for a in `seq 1 3`; do echo $a; done 1 2 3 [root@yong-01 shell]# for a in 1 2 3; do echo $a; done 1 2 3
#!/bin/bash while : # 冒號 : 表示死循環的意思,或者1,或者 true都是死循環 do load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1` if [ $load -gt 10 ] then /usr/local/sbin/mail.py xxx@163.com "load high" "$load" fi sleep 30 #休眠30秒,由於檢查系統負載,不須要一直去檢查,過一會再看 done [root@yong-01 shell]# sh -x while1.sh + : ++ w ++ head -1 ++ awk -F 'load average:' '{print $2}' ++ cut -d. -f1 + load=' 0' + '[' 0 -gt 10 ']' + sleep 30 若想這種腳本不意外的終止,能夠打開screen,在screen跑腳本
知識點shell
while循環案例2bash
#!/bin/bash while : do read -p "Please input a number: " n if [ -z "$n" ] then echo "you need input sth." continue #continue 從新回到循環 fi n1=`echo $n|sed 's/[0-9]//g'` if [ -n "$n1" ] then echo "you just only input numbers." continue fi break #break 退出循環 done echo $n
#!/bin/bash for i in `seq 1 5` do echo $i if [ $i -eq 3 ] #比較數字,用-eq ;如果比較的是字符串,那須要用 == then break fi echo $i done echo bbbb
[root@yong-01 shell]# sh -x break.sh ++ seq 1 5 + for i in '`seq 1 5`' + echo 1 1 + '[' 1 -eq 3 ']' + echo 1 1 + for i in '`seq 1 5`' + echo 2 2 + '[' 2 -eq 3 ']' + echo 2 2 + for i in '`seq 1 5`' + echo 3 3 + '[' 3 -eq 3 ']' + break + echo bbbb bbbb [root@yong-01 shell]# sh break.sh 1 1 2 2 3 bbbb
#!/bin/bash for i in `seq 1 5` do echo $i if [ $i -eq 3 ] then continue fi echo $i done echo bbbb
[root@yong-01 shell]# sh continue.sh 1 1 2 2 3 4 4 5 5 bbbb
#!/bin/bash for i in `seq 1 5` do echo $i if [ $i -eq 3 ] then exit fi echo $i done echo bbbb
[root@yong-01 shell]# sh exit.sh 1 1 2 2 3