Shell脚本之while语句

1.while最常见的一个作用就是while true,他可以借助此命令达到 死循环的作用,从而,将命令永远的执行下去!

  • 每秒检测系统负载,标准输出
[root@master shell]# cat check_load.sh 
#!/bin/bash
#checking the load of the machine

while true
do
    uptime
    sleep 1
done
[root@master 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
  • 每秒检测系统负载,并且存入一个文件里
[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]# cat 倒计时.sh
#!/bin/bash
#print 10~1

VAL1=10
while [ $VAL1 -gt 0 ]
do
    echo $VAL1
    VAL1=$[ $VAL1 - 1 ]
done
[root@master shell]# sh 倒计时.sh
10
9
8
7
6
5
4
3
2
1
2:
[root@master 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"
[root@master shell]# sh 加和.sh
The total value is 5050

你可能感兴趣的:(linux基础,shell脚本)