上一章Linux shell编程教程请查看: shell基本操作符和条件语句
这一章我们开始讨论shell循环语句和循环控制以及它们的用法。
一、shell循环语句
循环是一种强大的编程工具,它使您能够重复执行一组命令,在这里我们将研究shell程序员可以使用的以下类型的循环:
- while循环
- for循环
- until循环
- select循环
我们将根据情况使用不同的循环,例如while循环执行给定的命令,直到给定的条件保持为true,而until循环执行直到给定的条件变为true。
1、嵌套循环
所有的循环都支持嵌套概念,这意味着你可以将一个循环放入另一个类似的或不同的循环中。这种嵌套可以根据你的需求进行无限次,下面是一个嵌套while循环的例子,其他循环可以根据编程需求以类似的方式嵌套:
嵌套while循环
可以使用while循环作为另一个while循环的一部分,嵌套while循环语法如下:
while command1 ; # 第一个循环,外循环
do
Statement(s) 若command1为true则执行该语句
while command2 ; # 第二个循环,内部循环
do
Statement(s) 若command2为true则执行该语句
done
Statement(s) 若command1为true则执行该语句
done
二、循环控制
这里我们将讨论Unix中的shell循环控制,到目前为止你已经了解了如何创建循环和使用循环来完成不同的任务。有时你需要停止循环或跳过循环的迭代,在这里我们将学习以下两个用于控制shell循环的语句:
- break语句
- continue声明
1、无限循环
所有的循环都有一个有限的生命周期,一旦条件为false或true它们就会根据循环而出现。如果不满足要求的条件,则循环可能会一直持续下去,不终止的循环执行无限次,因此这样的循环称为无限循环。
下面是一个简单的示例,它使用while循环来显示数字0到9:
#!/bin/bash
a=10
until [ $a -lt 10 ]
do
echo $a
a=`expr $a + 1`
done
2、break语句
break语句用于在完成执行break语句之前的所有代码行之后终止整个循环的执行,然后在循环结束后逐步向下执行代码,break语句用于从循环中跳出。
还可以使用break命令:break n使用这种格式退出嵌套循环,这里n指定了到出口的第n个封闭循环。
3、continue语句
continue语句类似于break命令,只是它导致循环的当前迭代退出,而不是整个循环。当发生错误但希望执行循环的下一个迭代时,此语句非常有用。
与break语句一样可以为continue命令提供一个整数参数,以便从嵌套循环中跳过命令:continue n,这里n指定从第n个封闭循环开始。
下面的循环使用continue语句,它从continue语句返回并开始处理下一个语句:
#!/bin/bash
NUMS="1 2 3 4 5 6 7"
for NUM in $NUMS
do
Q=`expr $NUM % 2`
if [ $Q -eq 0 ]
then
echo "偶数"
continue
fi
echo "奇数"
done
评论前必须登录!
注册