Shell指令碼之while語句
阿新 • • 發佈:2019-01-01
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