while循环的语法:
while 条件测试
do
命令区域
done
举例:
1 2 3 4 5 6 7 8 9 10 11 12 | #!/bin/bash declare -i i=1 declare -i sum =0 while ((i<=10)) do let sum +=i let ++i done echo $ sum |
使用while, 读取文件内容
while循环,经典的用法是搭配转向输入,读取文件的内容,做法如下:
1 2 3 4 5 6 | #!/bin/bash while read line do echo $line done < cvsfile |
- 行3,使用read由标准输入读取数据,放入变量line中,如果读到的数据非空,就进入循环。
- 行6,将cvsfile的内容转向输入,交给read读取。
再举一例:
1 2 3 4 5 6 | #!/bin/bash IFS= ':' while read f1 f2 f3 f4 f5 f6 f7 do echo "账号:$f1,login Shell 是: $f7" done < "/etc/passwd" |
行3,读取/etc/passwd各行账号数据,并将各字段放入变量f1~f7。
while无穷循环
1 2 3 4 | whlie ((1)) do echo '夜不眠' done |
把 ((1)) 改成 [ 1 ] 也可以。
或者:
1 2 3 4 | whlie true do echo '夜不眠' done |
或者:
1 2 3 4 | whlie : do echo '夜不眠' done |
键入Ctrl + C,可终止循环。