一、while循环
while循环是shell脚本中最简单的一种循环,当条件满足时,while重复的执行一组语句,当条件不满足时,就退出while循环
Shell while循环的用法如下:
while condition
do
statements
done
condition表示判断条件,statements表示要执行的语句(可以是一条,也可以有多条),do 和 done都是shell中的关键字
注意:在while循环体中必须有相应的语句使得condition越来越趋近于“不成立”,只有这样才能最终退出循环,否则while就成了死循环,会一直执行下去,永无休止
while语句和if else语句中的condition用法都是一样的,可以使用test
命令或[]
,也可以使用(())
或者[[]]
二、while循环实例
以下是一个基本的while循环,测试条件是:如果i小于等于100,那么条件返回真。i 从1开始,每次循环处理时,i 加1。运行上述脚本:
#!/bin/bash
i=1
sum=0
while (( i<=100 ))
do
((sum+= i))
((i++))
done
echo "This sum is: $sum"
运行脚本,输出:
The sum is: 5050
三、while循环读取键盘输入
while循环可用于读取键盘信息。下面的例子中,输入信息被设置为变量FILM,按结束循环。
#!/bin/bash
echo '按下 <CTRL-D> 退出'
echo -n '输入你最喜欢的网站名: '
while read FILM
do
echo "是的!$FILM 是一个好网站"
done
运行脚本,输出为:
按下 <CTRL-D> 退出
输入你最喜欢的网站名:百度
是的!百度 是一个好网站
即在终端中读取数据,可以等于在文件中读取数据,按下ctrl+d
组合键表示读取到文件流的末尾,此时read就会读取失败。得到一个 非0的退出状态,从而导致判断条件不成立,结束循环
四、Shell无限循环
三种无限循环语法格式:
while :
do
command
done
或者
while true
do
command
done
或者
for (( ; ; ))