1. 程式人生 > >Shell指令碼之while語句

Shell指令碼之while語句

1.while最常見的一個作用就是while true,他可以藉助此命令達到 死迴圈的作用,從而,將命令永遠的執行下去!

  • 每秒檢測系統負載,標準輸出
[[email protected] shell]# cat check_load.sh 
#!/bin/bash
#checking the load of the machine

while true
do
    uptime
    sleep 1
done
[[email protected] shell]# sh check_load.sh 
 10:20:54 up 4 min,  1 user,  load average: 0.05
, 0.19, 0.12 10:20:56 up 4 min, 1 user, load average: 0.05, 0.19, 0.12 10:20:57 up 4 min, 1 user, load average: 0.05, 0.19, 0.12 10:20:58 up 4 min, 1 user, load average: 0.05, 0.19, 0.12 ^C
  • 每秒檢測系統負載,並且存入一個檔案裡
[[email protected] shell]# cat check_load2.sh 
#!/bin/bash
#update the checking that the load of
the machine while true do uptime >>/tmp/uptime.log usleep 1000000 done //因為已經將輸出結果做了重定向,所以標準輸出螢幕上只會有一個游標在不停的閃動,而不會有任何的輸出 [[email protected] shell]# cat /tmp/uptime.log 10:24:12 up 8 min, 1 user, load average: 0.00, 0.10, 0.10 10:24:13 up 8 min, 1 user, load average: 0.00, 0.10, 0.10 10:24:14 up 8 min
, 1 user, load average: 0.00, 0.10, 0.10 10:24:15 up 8 min, 1 user, load average: 0.00, 0.10, 0.10 10:24:16 up 8 min, 1 user, load average: 0.00, 0.10, 0.10 10:24:17 up 8 min, 1 user, load average: 0.00, 0.10, 0.10 10:24:18 up 8 min, 1 user, load average: 0.00, 0.10, 0.10 10:24:19 up 8 min, 1 user, load average: 0.00, 0.10, 0.10 10:24:20 up 8 min, 1 user, load average: 0.00, 0.10, 0.10 10:24:21 up 8 min, 1 user, load average: 0.00, 0.10, 0.10

2.執行其最本分的功能,按照某一條件進行迴圈

1:
[[email protected] shell]# cat 倒計時.sh
#!/bin/bash
#print 10~1

VAL1=10
while [ $VAL1 -gt 0 ]
do
    echo $VAL1
    VAL1=$[ $VAL1 - 1 ]
done
[[email protected] shell]# sh 倒計時.sh
10
9
8
7
6
5
4
3
2
1
2:
[[email protected] shell]# cat 加和.sh
#!/bin/bash
#計算1+2+...+100的值

i=1
sum=0
while (( i<101 ))
do
    (( sum=sum+i ))
    (( i++ ))
done

echo "The total value is $sum"
[[email protected] shell]# sh 加和.sh
The total value is 5050