1.while循环
- while循环是shell脚本中最简单的一种循环:
- 当条件满足时,while重复地执行一组语句,当条件不满足时,就退出while循环
- 语法:
while condition #condition表示判断条件
do
statements #statements表示要执行的语句
done
- 1.在while循环体中必须有相应的语句使得condition越来越趋于“不成立”,只有这样才能最终退出循环,都则while就成了死循环,会一直执行下去,永无休止
- 2.while语句和if else 语句中的condition用法都是一样的,你可以使用test或者[ ]命令,也可以使用(( ))或[[ ]]
练习:
- 计算1~100的和
- 计算从m加到n的值
- 实现简单加法计算器
在终端中读取数据可以等价与在文件中读取数据,按下Ctrl+D组合键表示读取到文件流的末尾,此时read就会读取失败,得到一个非0的退出状态,从而导致判断条件不成立,结束循环
2.until循环
- until循环和while循环恰好相反:
- 当判断条件不成立时才进行循环,一旦判断条件成立,就终止循环
- 用法:
until condition #在until循环体中必须有相应的语句使得condition越来越趋近于“成立”,只有这样才能最终退出循环,否则until就成了死循环
do
statements
done
练习:
- 计算1~100的和
- 实现变量的依次输出
- 实现1000逐减200
3.C语言风格的for循环
- 用法:
for ((exp1;exp2;exp3))
do
statements
done
- 先执行exp1;
- 再执行exp2,如果它的判断结果成立,则执行循化体中的语句,否则结束整个for循环;
- 执行完循环体后再执行exp3;
- 重复执行步骤2和3,直到exp2的判断结果不成立,就结束循环;
- 上面的步骤中,第二步和第三步合并在一起算一次循环,会重复执行。for语句的主要作用就是不断执行步骤2和3
- 1.exp1仅在第一次循环时执行,以后都不会再执行。可以认为这是一个初始化语句
- 2.exp2一般是一个关系表达式,决定了是否有还要继续下次循环,称为“循化条件”
- 3.exp3很多情况下是一个带有自增或自减运算的表达式,以使循环条件逐渐变得“不成立”
- 4.for循环中的exp1、exp2、exp3都是可选项,都可以省略,但分号必须保留!
for ((初始化语句;判断条件;自增或自减))
练习(C语言风格)
计算1到100的和
- 省略初始化条件
- 省略判断条件
- 省略自增或自减
- 全部省略
- 结果
4.Python风格的for循环
- 用法
for variable in value_list #variable表示变量,value_list表示取值列表
do
statements
done
- 循环过程:
- 每次循环都会从value_list中取出一个值赋给变量variable,然后进入循环体,执行循环中的statements,直到取完value_list中的所有值,循环结束
python风格for循环练习
- value_list:直接给出具体的值
- value_list:直接给出具体的值
- value_list:给出一个取值范围
- value_list:给出一个取值范围 {start…end}
- start:起始值 end:终止值
- 中间用两个点相连
- 这种形式只支持数字和字母
- value_list:给出一个取值范围
- value_list:根据命令的执行结果
- 获取命令执行结果:反引号`` 或者$( )
- value_list:命令的结果
- value_list:可以使用通配符
- value_list:可以使用特殊符号
- $@表示参数列表中所有参数
- value_list可以省略