for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

for循環

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

案例1:寫個for循環的腳本需求,我讓你計算1到100所有數字的和。

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

上圖有了數字之後就去做加減法

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

[root@100xuni1 shell]# sh -x for1.sh           ##執行查詢過程
+ sum=0                  ##sum=0
++ seq 1 100            
+ for i in '`seq 1 100`'        ##循環一次是1+0等於1
+ sum=1
+ for i in '`seq 1 100`'       ##第二次循環是1+2等於3
+ sum=3
+ for i in '`seq 1 100`'          ##第三次循環 3+3等於6  
+ sum=6
+ for i in '`seq 1 100`'         ##第四次循環6+4等於10   以下以此類推
+ sum=10
+ for i in '`seq 1 100`'
+ sum=15
+ for i in '`seq 1 100`'
+ sum=21
+ for i in '`seq 1 100`'
+ sum=28
+ for i in '`seq 1 100`'
+ sum=36
+ for i in '`seq 1 100`'
+ sum=45
+ for i in '`seq 1 100`'
+ sum=55
+ for i in '`seq 1 100`'
+ sum=66
+ for i in '`seq 1 100`'
+ sum=78
+ for i in '`seq 1 100`'
+ sum=91
+ for i in '`seq 1 100`'
+ sum=105
+ for i in '`seq 1 100`'
+ sum=120
+ for i in '`seq 1 100`'
+ sum=136
+ for i in '`seq 1 100`'
+ sum=153
+ for i in '`seq 1 100`'
+ sum=171
+ for i in '`seq 1 100`'
+ sum=190
+ for i in '`seq 1 100`'
+ sum=210
+ for i in '`seq 1 100`'
+ sum=231
+ for i in '`seq 1 100`'
+ sum=253
+ for i in '`seq 1 100`'
+ sum=276
+ for i in '`seq 1 100`'
+ sum=300
+ for i in '`seq 1 100`'
+ sum=325
+ for i in '`seq 1 100`'
+ sum=351
+ for i in '`seq 1 100`'
+ sum=378
+ for i in '`seq 1 100`'
+ sum=406
+ for i in '`seq 1 100`'
+ sum=435
+ for i in '`seq 1 100`'
+ sum=465
+ for i in '`seq 1 100`'
+ sum=496
+ for i in '`seq 1 100`'
+ sum=528
+ for i in '`seq 1 100`'
+ sum=561
+ for i in '`seq 1 100`'
+ sum=595
+ for i in '`seq 1 100`'
+ sum=630
+ for i in '`seq 1 100`'
+ sum=666
+ for i in '`seq 1 100`'
+ sum=703
+ for i in '`seq 1 100`'
+ sum=741
+ for i in '`seq 1 100`'
+ sum=780
+ for i in '`seq 1 100`'
+ sum=820
+ for i in '`seq 1 100`'
+ sum=861
+ for i in '`seq 1 100`'
+ sum=903
+ for i in '`seq 1 100`'
+ sum=946
+ for i in '`seq 1 100`'
+ sum=990
+ for i in '`seq 1 100`'
+ sum=1035
+ for i in '`seq 1 100`'
+ sum=1081
+ for i in '`seq 1 100`'
+ sum=1128
+ for i in '`seq 1 100`'
+ sum=1176
+ for i in '`seq 1 100`'
+ sum=1225
+ for i in '`seq 1 100`'
+ sum=1275
+ for i in '`seq 1 100`'
+ sum=1326
+ for i in '`seq 1 100`'
+ sum=1378
+ for i in '`seq 1 100`'
+ sum=1431
+ for i in '`seq 1 100`'
+ sum=1485
+ for i in '`seq 1 100`'
+ sum=1540
+ for i in '`seq 1 100`'
+ sum=1596
+ for i in '`seq 1 100`'
+ sum=1653
+ for i in '`seq 1 100`'
+ sum=1711
+ for i in '`seq 1 100`'
+ sum=1770
+ for i in '`seq 1 100`'
+ sum=1830
+ for i in '`seq 1 100`'
+ sum=1891
+ for i in '`seq 1 100`'
+ sum=1953
+ for i in '`seq 1 100`'
+ sum=2016
+ for i in '`seq 1 100`'
+ sum=2080
+ for i in '`seq 1 100`'
+ sum=2145
+ for i in '`seq 1 100`'
+ sum=2211
+ for i in '`seq 1 100`'
+ sum=2278
+ for i in '`seq 1 100`'
+ sum=2346
+ for i in '`seq 1 100`'
+ sum=2415
+ for i in '`seq 1 100`'
+ sum=2485
+ for i in '`seq 1 100`'
+ sum=2556
+ for i in '`seq 1 100`'
+ sum=2628
+ for i in '`seq 1 100`'
+ sum=2701
+ for i in '`seq 1 100`'
+ sum=2775
+ for i in '`seq 1 100`'
+ sum=2850
+ for i in '`seq 1 100`'
+ sum=2926
+ for i in '`seq 1 100`'
+ sum=3003
+ for i in '`seq 1 100`'
+ sum=3081
+ for i in '`seq 1 100`'
+ sum=3160
+ for i in '`seq 1 100`'
+ sum=3240
+ for i in '`seq 1 100`'
+ sum=3321
+ for i in '`seq 1 100`'
+ sum=3403
+ for i in '`seq 1 100`'
+ sum=3486
+ for i in '`seq 1 100`'
+ sum=3570
+ for i in '`seq 1 100`'
+ sum=3655
+ for i in '`seq 1 100`'
+ sum=3741
+ for i in '`seq 1 100`'
+ sum=3828
+ for i in '`seq 1 100`'
+ sum=3916
+ for i in '`seq 1 100`'
+ sum=4005
+ for i in '`seq 1 100`'
+ sum=4095
+ for i in '`seq 1 100`'
+ sum=4186
+ for i in '`seq 1 100`'
+ sum=4278
+ for i in '`seq 1 100`'
+ sum=4371
+ for i in '`seq 1 100`'
+ sum=4465
+ for i in '`seq 1 100`'
+ sum=4560
+ for i in '`seq 1 100`'
+ sum=4656
+ for i in '`seq 1 100`'
+ sum=4753
+ for i in '`seq 1 100`'
+ sum=4851
+ for i in '`seq 1 100`'
+ sum=4950
+ for i in '`seq 1 100`'
+ sum=5050
+ echo 5050
5050

查看每次循環的值

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

[root@100xuni1 shell]# sh for1.sh
0 + 1
1
1 + 2
3
3 + 3
6
6 + 4
10
10 + 5
15
15 + 6
21
21 + 7
28
28 + 8
36
36 + 9
45
45 + 10
55
55 + 11
66
66 + 12
78
78 + 13
91
91 + 14
105
105 + 15
120
120 + 16
136
136 + 17
153
153 + 18
171
171 + 19
190
190 + 20
210
210 + 21
231
231 + 22
253
253 + 23
276
276 + 24
300
300 + 25
325
325 + 26
351
351 + 27
378
378 + 28
406
406 + 29
435
435 + 30
465
465 + 31
496
496 + 32
528
528 + 33
561
561 + 34
595
595 + 35
630
630 + 36
666
666 + 37
703
703 + 38
741
741 + 39
780
780 + 40
820
820 + 41
861
861 + 42
903
903 + 43
946
946 + 44
990
990 + 45
1035
1035 + 46
1081
1081 + 47
1128
1128 + 48
1176
1176 + 49
1225
1225 + 50
1275
1275 + 51
1326
1326 + 52
1378
1378 + 53
1431
1431 + 54
1485
1485 + 55
1540
1540 + 56
1596
1596 + 57
1653
1653 + 58
1711
1711 + 59
1770
1770 + 60
1830
1830 + 61
1891
1891 + 62
1953
1953 + 63
2016
2016 + 64
2080
2080 + 65
2145
2145 + 66
2211
2211 + 67
2278
2278 + 68
2346
2346 + 69
2415
2415 + 70
2485
2485 + 71
2556
2556 + 72
2628
2628 + 73
2701
2701 + 74
2775
2775 + 75
2850
2850 + 76
2926
2926 + 77
3003
3003 + 78
3081
3081 + 79
3160
3160 + 80
3240
3240 + 81
3321
3321 + 82
3403
3403 + 83
3486
3486 + 84
3570
3570 + 85
3655
3655 + 86
3741
3741 + 87
3828
3828 + 88
3916
3916 + 89
4005
4005 + 90
4095
4095 + 91
4186
4186 + 92
4278
4278 + 93
4371
4371 + 94
4465
4465 + 95
4560
4560 + 96
4656
4656 + 97
4753
4753 + 98
4851
4851 + 99
4950
4950 + 100
5050
5050

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

把/etc下的文件做下編譯,把所有目錄裏邊的文件全部ls列出來

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

while循環

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

需求每隔半分鐘檢查下系統的負載,當系統的負載大於10的時候就發一封郵件,這是個監控腳本

例子如下

#!/bin/bash
while :                  ##冒號表示死循環
do
       load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`    ##這條的命令會把系統的負載複製到load這個變量裏
             if [ $load -gt 10 ]           ##邏輯判斷當load大於10的時候
             then           ##然後怎麼辦
                  /usr/local/sbin/mail.py [email protected] "load high" "$load"      ##發郵件給 [email protected],第二個參數主題load high 第三個主題$load
              fi
                sleep 30       ##間斷的時間30秒查一次
done

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本
for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

while循環案例2,死循環腳本,在循環當中需要你去人爲的交互輸入一個數字,檢測數字是不是你想要的東西

#!/bin/bash
while :
do
    read -p "Please input a number: " n             ##
    if [ -z "$n" ]
    then
        echo "you need input sth."
        continue         ##繼續執行大循環
    fi
    n1=`echo $n|sed 's/[0-9]//g'`
    if [ -n "$n1" ]
    then
        echo "you just only input numbers."
        continue
    fi
    break
done
echo $n

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

break跳出循環

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

#!/bin/bash
for i in `seq 1 5`
do
    echo $i     ##把i的值輸出
    if [ $i -eq 3 ]   ##然後做個判斷,當i等於3的時候
    then
        break    ##跳出循環
   fi
    echo $i
done
echo aaaa

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本
for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

continue結束本次循環

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

exit退出整個腳本

for循環、 while循環、break跳出循環、continue結束本次循環、exit退出整個腳本

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章