11.2. 嵌套循环

嵌套循环 是指在一个循环内部包含另一个循环,即外部循环体内部有一个内部循环。 它的工作原理是:外部循环的第一次迭代触发内部循环,内部循环执行至完成。 然后,外部循环的第二次迭代再次触发内部循环。 这样重复直到外部循环结束。 当然,在内部或外部循环中使用 break 会中断此过程。

范例 11-20. 嵌套循环

#!/bin/bash
# nested-loop.sh: Nested "for" loops.

outer=1             # Set outer loop counter.

# Beginning of outer loop.
for a in 1 2 3 4 5
do
  echo "Pass $outer in outer loop."
  echo "---------------------"
  inner=1           # Reset inner loop counter.

  # ===============================================
  # Beginning of inner loop.
  for b in 1 2 3 4 5
  do
    echo "Pass $inner in inner loop."
    let "inner+=1"  # Increment inner loop counter.
  done
  # End of inner loop.
  # ===============================================

  let "outer+=1"    # Increment outer loop counter. 
  echo              # Space between output blocks in pass of outer loop.
done               
# End of outer loop.

exit 0

请参见 范例 27-11,其中展示了嵌套的 while 循环,以及 范例 27-13,其中展示了一个 until 循环 内嵌套了一个 while 循环。