语法
while循环的执行流程为:
- 先对condition进行判断,如果该条件成立,就进入循环,执行while循环体中的语句
- 每一次执行到done的时候都会重新判断condition是否成立,如果成立,就进入下一次循环,如果不成立,就结束整个while循环
- 如果一开始condition就不成立,那么程序就不会进入循环体
while condition
do
command
done
判断语句
while语句和if else语句中的condition用法是一样的,可以使用test、[ ]、(( ))、[[ ]],也可以使用命令的退出状态
示例
实现一个简单的加法计算器,用户每行输入一个数字,计算所有数字的和
#!/bin/bash
sum=0
# 按下ctrl+d组合键表示读取到文件流的末尾,此时read就会读取失败,得到一个非0值的退出状态,从而导致判断条件不成立,结束循环
while read num
do
((sum += num))
done
echo "the sum is: $sum"