标签:while循环用法
shell中while语句的格式:
while ; do
done
while 特殊用法一:
在while循环中经常用到break,continue循环控制语句。下面介绍下continue和break的用法
continue:提前进入下一轮循环,它一定是由于满足一定的条件而触发的,continue触发后,下面的代码段不再继续执行。
用下面的例子来解释:
实例:计算100以内奇数的和。
脚本内容如下:
#!/bin/bash # let SUM=0 let I=0 while [ $I -lt 100 ]; do let I++ if [ $[$I%2] -eq 0 ]; then continue fi let SUM+=$I done echo $SUM
[root@dnsserver ~]# ./sum.sh 2500
来看看continue上面的条件
if [ $[$I%2] -eq 0 ]; continue
表示如果$I为偶数,在下面的代码不再执行,而是跳出本次循环,提前进入下一次循环。
break:提前退出循环
实例:计算1+2+3+..+1000, 当和大于5000时,退出循环,不再做加法运算
#!/bin/bash # declare -i SUM=0 for I in {1..1000}; do let SUM+=$I if [ $SUM -gt 5000 ]; then break fi done echo $I echo $SUM
[root@dnsserver ~]# ./sum1000.sh 100 5050
while特殊用法二:
while read LINE; do
done < /PATH/TO/SOMEFILE
while可以读取文件(done后面就是制定的文件)中的每一行内容,并保存到LINE这个变量中。
实例:判定/etc/passwd文件中用户是否为bash,如果是bash,则显示用户名
#!/bin/bash FILE=/etc/passwd while read LINE; do [ `echo $LINE | awk -F : ‘{print $7}‘` == ‘/bin/bash‘ ] && echo $LINE | awk -F : ‘{print $1}‘ done < $FILE
脚本执行结果:
[root@dnsserver ~]# ./bash.sh root zenge test
本文出自 “zengestudy” 博客,谢绝转载!
标签:while循环用法
原文地址:http://zengestudy.blog.51cto.com/1702365/1775876