1.while最常见的一个作用就是while true
,他可以借助此命令达到 死循环
的作用,从而,将命令永远的执行下去!
[root@master shell]
#!/bin/bash
while true
do
uptime
sleep 1
done
[root@master shell]
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
[root@master 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
//因为已经将输出结果做了重定向,所以标准输出屏幕上只会有一个光标在不停的闪动,而不会有任何的输出
[root@master 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:
[root@master shell]
#!/bin/bash
VAL1=10
while [ $VAL1 -gt 0 ]
do
echo $VAL1
VAL1=$[ $VAL1 - 1 ]
done
[root@master shell]
10
9
8
7
6
5
4
3
2
1
例2:
[root@master shell]
#!/bin/bash
i=1
sum=0
while (( i<101 ))
do
(( sum=sum+i ))
(( i++ ))
done
echo "The total value is $sum"
[root@master shell]
The total value is 5050