shell脚本学习(十三)脚本学习(十三)——for循环语句循环语句
1 C语言风格的语言风格的for循环循环
格式如下:
for ((exp1;exp2;exp3))
do
statements
done
运行过程:运行过程:
1)先执行)先执行exp1;;
2 )再执行)再执行exp2,如果它的判断结果成立,则执行循化体中的语句,否则结束整个,如果它的判断结果成立,则执行循化体中的语句,否则结束整个for循环;循环;
3)执行完循环体后再执行)执行完循环体后再执行exp3;;
4)重复执行步骤)重复执行步骤2)和)和3),直到),直到exp2的判断结果不成立,就结束循环。的判断结果不成立,就结束循环。
上面的步骤中,第二步和第三步合并在一起算一次循环,会重复执行。上面的步骤中,第二步和第三步合并在一起算一次循环,会重复执行。for语句的主要作用就是不断执行步骤语句的主要作用就是不断执行步骤2)和)和3))
注意:
1))exp1仅在第一次循环时执行,以后都不会再执行。可以认为这是一个初始化语句仅在第一次循环时执行,以后都不会再执行。可以认为这是一个初始化语句
2))exp2一般是一个关系表达式,决定了是否有还要继续下次循环,称为一般是一个关系表达式,决定了是否有还要继续下次循环,称为“循化条件循化条件”
3))exp3很多情况下是一个带有自增或自减运算的表达式,以使循环条件逐渐变得很多情况下是一个带有自增或自减运算的表达式,以使循环条件逐渐变得“不成立不成立”
4))for循环中的循环中的exp1、、exp2、、exp3都是可选项,都可以省略,但分号必须保留。都是可选项,都可以省略,但分号必须保留。
格式:
for ((初始化语句;判断条件;自增或自减))
示例一:计算1到100的和
#!/bin/bash
sum=0
for ((i=1;i<=100;i++))
do
((sum += i))
done
echo "The sum is $sum"
变形一:省略初始化条件变形一:省略初始化条件
#!/bin/bash
i=1 #把初始化条件提前写在for语句前面
sum=0
for ((;i<=100;i++)) #即使省略了exp1,它后面的分号仍然需要保留
do
((sum += i))
done
echo "The sum is $sum"
变形二:省略判断条件变形二:省略判断条件
#!/bin/bash
sum=0
for ((i=1;;i++)) #分号不能省略
do
if ((i>100));then #把判断条件写成if语句在for循环体中
break
fi
((sum += i))
done
echo "The sum is $sum"
变形三:省略自增或自减变形三:省略自增或自减
#!/bin/bash
sum=0
for ((i=1;i<=100;))
do
((sum += i))
((i++)) #把自增或自减写进循环体中
done
echo "The sum is $sum"
变形四:全部省略变形四:全部省略
#!/bin/bash
i=1
sum=0
for ((;;))
do
if ((i>100));then
break
fi
((sum += i))
((i++))
done
echo "The sum is $sum"
2 python风格的风格的for in循环循环
格式:格式:
for variable in value_list
do
statements
done
其中其中variable表示变量,表示变量,value_list表示取值列表表示取值列表
评论0