学习目标
Shell的循环语句
Shell常见的循环语句有for循环、while循环语句和until循环。
12-6-1 for循环
语法:
for 变量 in 列表 do 操作 done
注意:变量要在循环内部用来指列表当中的对象。
列表是在for循环的内部要操作的对象,可以是字符串也可以是文件,如果是文件则为文件名。
实例:在列表中的值:a,b,c,e,I,2,4,6,8用循环的方式把字符与数字分成两行输出。
root@ubuntu:/home/study# vi test5 #! /bin/bash for i in a,b,c,e,I 2,4,6,8 do echo $i done
注意: 在循环列表中的空格可表示换行。
root@ubuntu:/home/study# chmod +x test5
root@ubuntu:/home/study# ./test5
a,b,c,e,I
2,4,6,8
实例:求从1~100的和。
#! /bin/bash total=0; for((j=1;j<=100;j++)) do total=`expr $total + $j`; done echo "The result is $total";
注意:for语句中的双括号不能省,最后的分号可有可无,表达式total=`expr $total + $j`的加号两边的空格不能省,否则会成为字符串的连接。
12-6-2 while循环
语法:
while 表达式 do 操作 done
只要表达式为真,do和done之间的操作就一直会进行。
实例:用while循环求1~100的和。
#! /bin/bash total=0; num=0; while((num<=100)) do total=`expr $total + $num`; num=`expr $num + 1`; done echo "The result is $total";
12-6-3 until循环
语法:
until 表达式 do 操作 done
注意:重复do和done之间的操作直到表达式成立为止。
实例:用until循环求1~100的和。
#! /bin/bash total=0; num=0; until [ $num –gt 100 ] do total=`expor $total + $num`; num=`expr $num + 1`; done echo "The result is $total";