在本章中,我们将讨论Unix中的Shell循环,循环是功能强大的编程工具,使您能够重复执行一组命令。
- while 循环
- for 循环
- until 循环
- select 循环
您将根据情况使用不同的循环。如, while 循环执行给定的命令,直到给定的条件保持为真为止。 until循环执行直到给定条件变为真。
循环嵌套
可以将while循环用作另一个while循环主体的一部分。
while command1 ; # this is loop1, the outer loop do Statement(s) to be executed if command1 is truewhile command2 ; # this is loop2, the inner loop do Statement(s) to be executed if command2 is true done
Statement(s) to be executed if command1 is true done
While - 示例
这是循环嵌套的简单示例。让我们在您用来计数到9的循环内添加另一个倒数循环-
#!/bin/sha=0 while [ "a"</span><span class="pln"> </span><span class="pun">-</span><span class="pln">lt </span><span class="lit">10</span><span class="pln"> </span><span class="pun">]</span><span class="pln"> </span><span class="com"># this is loop1</span><span class="pln"> </span><span class="kwd">do</span><span class="pln"> b</span><span class="pun">=</span><span class="str">"a" while [ "b"</span><span class="pln"> </span><span class="pun">-</span><span class="pln">ge </span><span class="lit">0</span><span class="pln"> </span><span class="pun">]</span><span class="pln"> </span><span class="com"># this is loop2</span><span class="pln"> </span><span class="kwd">do</span><span class="pln"> echo </span><span class="pun">-</span><span class="pln">n </span><span class="str">"b " b=
expr $b - 1done echo a=expr $a + 1done
这将产生以下输出。请务必注意 echo -n 在这里的工作方式。在这里 -n 选项使echo避免打印换行符。
0 1 0 2 1 0 3 2 1 0 4 3 2 1 0 5 4 3 2 1 0 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0