فصل ‎11‎- حلقه‌ها و انشعاب‌ها

‎11.2‎- حلقه‌های تودرتو

یک حلقه تودرتو، حلقه‌ای در داخل یک حلقه دیگر است، یک حلقه درونی داخل بدنه یک حلقه خارجی. چگونگی کارکرد آن چنین است که دور اول حلقه خارجی حلقه داخلی را راه‌اندازی می‌کند، که تا کامل شدن اجرا می‌شود. سپس دور دوم حلقه خارجی دوباره حلقه داخلی را راه‌اندازی می‌کند. این عمل تا خاتمه یافتن حلقه خارجی تکرار می‌گردد. البته، یک break در درون حلقه داخلی یا خارجی می‌تواند این فرایند را قطع نماید.

مثال ‎11-20‎. حلقه تودرتو

#!/bin/bash
# ‎nested-loop.sh‎:  حلقه‌های تودرتوی ‎for‎

outer=1             #          .تنظیم شمارشگر حلقه خارجی

# .شروع حلقه خارجی
for a in 1 2 3 4 5
do
  echo "Pass $outer in outer loop."
  echo "---------------------"
  inner=1              #      .تنظیم مجدد شمارشگر حلقه داخلی

  # ========================================================
  # .ابتدای حلقه داخلی
  for b in 1 2 3 4 5
  do
    echo "Pass $inner in inner loop."
    let "inner+=1"     #          .افزایش شمارشگر حلقه داخلی
  done
  # .انتهای حلقه داخلی
  # ========================================================

  let "outer+=1"    #             .افزایش شمارشگر حلقه خارجی
  echo              # .فضای میان بلوک‌های خروجی از حلقه خارجی
done               
# .انتهای حلقه خارجی

exit 0

برای یک توضیح مشروح از حلقه‌های while تودرتو، مثال ‎27-11‎ و برای مشاهده یک حلقه while تودرتو در داخل یک حلقه until نیز مثال ‎27-13‎ را ببینید.