10.2. 嵌套循环

嵌套循环就是在一个循环中还有一个循环,内部循环在外部循环体中.在外部循环的每次执行过程中都会触发内部循环,直到内部循环执行结束.外部循环执行了多少次,内部循环就完成多少次.当然,不论是外部循环或内部循环的break语句都会打断处理过程.


例子 10-19. 嵌套循环

   1 #!/bin/bash
   2 # nested-loop.sh: 嵌套的"for" 循环.
   3 
   4 outer=1             # 设置外部循环计数.
   5 
   6 # 开始外部循环.
   7 for a in 1 2 3 4 5
   8 do
   9   echo "Pass $outer in outer loop."
  10   echo "---------------------"
  11   inner=1           # 重设内部循环的计数.
  12 
  13   # ===============================================
  14   # 开始内部循环.
  15   for b in 1 2 3 4 5
  16   do
  17     echo "Pass $inner in inner loop."
  18     let "inner+=1"  # 增加内部循环计数.
  19   done
  20   # 内部循环结束.
  21   # ===============================================
  22 
  23   let "outer+=1"    # 增加外部循环的计数.
  24   echo              # 每次外部循环之间的间隔.
  25 done               
  26 # 外部循环结束.
  27 
  28 exit 0

关于嵌套的while循环请参考例子 26-11, 关于while循环里嵌套until循环的例子请参考例子 26-13.