10.2. 중첩된 루프

중첩된 루프는 루프 안에 루프가 들어 있는 형태를 말합니다. 바깥쪽 루프의 매 단계마다 안쪽 루프를 돌리는데, 이 전체 동작은 바깥쪽 루프가 끝날 때까지 계속 됩니다. 당연한 얘기지만, 안쪽 루프나 바깥쪽 루프에서 break가 나타나면 전체 동작을 중단시킵니다.

예 10-18. 중첩된 루프

#!/bin/bash
# Nested "for" loops.

outer=1             # 바깥쪽 루프 카운트 셋.

# 바깥쪽 루프 시작.
for a in 1 2 3 4 5
do
  echo "바깥쪽 루프의 $outer 단계."
  echo "---------------------"
  inner=1           # 안쪽 루프 리셋.

  # 안쪽 루프 시작.
  for b in 1 2 3 4 5
  do
    echo "안쪽 루프의 $inner 단계."
    let "inner+=1"  # 안쪽 루프 카운터 증가.
  done
  # 안쪽 루프의 끝.

  let "outer+=1"    # 바깥쪽 루프 카운터 증가. 
  echo              # 바깥쪽 루프 매 단계마다 빈 줄 삽입.
done               
# 바깥쪽 루프의 끝.

exit 0

중첩된 "while" 루프의 실례를 보려면 예 26-4을 참고하고, "until"안에 중첩된 "while"을 보려면 예 26-5을 참고하세요.