Unix / Linux - Shell 循环类型

  • 简述

    本章,我们将讨论 Unix 中的 shell 循环。循环是一种强大的编程工具,可让您重复执行一组命令。在本章中,我们将检查以下可供 shell 程序员使用的循环类型 -
    您将根据情况使用不同的循环。例如,while循环执行给定的命令,直到给定的条件保持为真;这until 循环执行直到给定的条件变为真。
    一旦您有良好的编程实践,您将获得专业知识,从而根据情况开始使用适当的循环。这里,whilefor 循环在大多数其他编程语言中都可用,例如 C, C++PERL, 等等。
  • 嵌套循环

    所有循环都支持嵌套概念,这意味着您可以将一个循环放入另一个类似或不同的循环中。根据您的要求,这种嵌套可以达到无限次。
    这是嵌套的示例 while环形。其他循环可以根据编程要求以类似的方式嵌套 -
  • 嵌套 while 循环

    可以使用 while 循环作为另一个 while 循环体的一部分。

    句法

    
    while command1 ; # this is loop1, the outer loop
    do
       Statement(s) to be executed if command1 is true
       while 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
    

    例子

    这是循环嵌套的一个简单示例。让我们在用于计数到 9 的循环中添加另一个倒计时循环 -
    
    #!/bin/sh
    a=0
    while [ "$a" -lt 10 ]    # this is loop1
    do
       b="$a"
       while [ "$b" -ge 0 ]  # this is loop2
       do
          echo -n "$b "
          b=`expr $b - 1`
       done
       echo
       a=`expr $a + 1`
    done
    
    这将产生以下结果。重要的是要注意如何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