linux用while-until-for三种循环结构分别计算1+2+3...+100的值并输出----shell脚本初学习
while-until-for三种循环结构分别计算1+2+3+…+100的值并输出
$变量替换 (引用一个变量的内容)。 一个变量名前面加一个$字符前缀表示引用该变量的内容。
一、until结构
这个结构在循环的顶部判断条件,并且如果条件一直为false那就一直循环下去(与while相反)。
until [condition-is-true] do command... done
例:
sum=0 num=0 #直到num值等于101之后跳出循环 until test $num -eq 101 do #下面两个均为反斜杠 sum=`expr $sum + $num` num=`expr $num + 1` done echo "the result is $sum"
二、for循环
对代码块的操作是构造组织shell脚本的关键, 循环和分支结构为脚本编程提供了操作代码块的工具。list中的参数允许包含通配符。如果do和for想在同一行出现,那么在它们之间需要添加一个“;”。
for arg in [list] 这是一个基本的循环结构,它与C的for结构有很大不同。 for arg in [list] do command(s)... done
例:
sum=0#计算 的和 i=0#定义一个累计额变量 for((;i<=100;i++)) do #依次累加 sum=$(($sum+i)) done #输出结果 echo "the result of "1+2+3+...+100" is===> $sum"
三、while循环 这种结构在循环的开头判断条件是否满足,如果条件一直满足,那就一直循环下去(0为退出码[exit status]),与for 循环的区别是,这种结构适合用在循环次数未知的情况下。
while [condition] do command... done 和for循环一样,如果想把do和条件放到同一行上还是需要一个“;”。 while [condition] ; do
方法1
sum=0 i=0 while((i<=100)) do sum=$(($sum + $i)) i=$(($i + 1)) done echo "the result of "1+2+3+...+100" is===> $sum"
法2
s=0 i=0 while [ $i != 100 ] do i=`expr $i + 1` s=`expr $s + $i` done echo "the result of "1+2+3+...+100" is===> $s"
法3
s=0 i=0 #i的值只要不等于100就会一直循环 while test $i -ne 100 do i=`expr $i + 1` s=`expr $s + $i` done echo "the result of "1+2+3+...+100" is===> $s"
上一篇:
多线程四大经典案例
下一篇:
Mapper部分联合查询问题