天天看點

shell筆記之while&for循環

while循環:一直循環下去

​使用:​
01.編寫守護程序
 02.讀取檔案資訊
 03.做數值運算      
​格式​
while true 
 do

 done      
使用:利用while輸出1-10
[root@zabbix_ser scripts]# cat zy
 zy05.sh  zy06.sh  zy07.sh  zy08.sh  zy1.sh   zy2.sh   zy3.sh   zy4.sh   
 [root@zabbix_ser scripts]# cat zy08.sh 
 #!/bin/bash
 #################################################
 #    File Name: zy08.sh
 #       Author: fakehydra
 #         Mail: [email protected]
 #     Function: 
 # Created Time: 2018年11月05日 星期一 10時42分42秒
 #################################################
 i=0
 while [ $i -le 9 ]
 do
 ((i++))
 echo $i
 done      
使用:利用while讀取檔案内容資訊:

​擷取通路日志流量彙總資訊​

sum=0
 while read line
 do
    size='echo $line|awk '{print $10}'|grep -v -'
    let sum+=size
 done<$1(nginx通路日志)
 echo $sum      

小遊戲

​規則​

讓系統先随機生成一個數字, 給這個數字定一個範圍(1-60)
 讓使用者輸入猜的數字,對輸入進行判斷,如果不符合要求
 就給與高或低提示, 猜對後則給出猜對用的次數, 實作while循環語句實作      
​實作​
[root@web01 scripts]# cat game_caishuzi.sh
 i=`echo $(($RANDOM%+ 60))`
 caice (){
 read -p "pls input your num: " num
 ((sum++))
 if [  $num -gt $i ]
 then
 echo "$num 太大了"
 elif [ $num -lt $i ]
 then
 echo "$num 太小了"
 else
 echo "恭喜你猜對了,共$sum次"
 exit 0
 wc -l
 fi
 }
 main(){
 caice
 }
 sum=0
 while true
 do
 main
 done      

for循環:主要用于執行次數有限的循環

文法說明

​根據變量數值進行循環​

for 變量名 in 變量取值清單;
 do --;
 done      

​根據判斷條件進行循環​

for ((exp1;exp2;exp3));
 do --;
 done      

使用:對數字1到100進行求和運算

​方法一​

[root@web01 scripts]# cat zy01.sh 
 for num in {1..100}
 do
 ((sum+=$num))
 done
 echo $sum      
[root@web01 scripts]# cat zy02.sh 
 for ((i=1;i<=100;i++))
 do
 sum=`expr $sum + $i`
 done
 echo $sum