Files
nearology 99fb7f0e82 Add sitemap and styles for Persian font integration
- Created a new sitemap.xml file for better SEO.
- Added a compressed version of the sitemap as sitemap.xml.gz.
- Introduced extra.css for custom styles, including Persian font support (IRANSansX).
- Defined font-face rules for regular and bold styles of IRANSansX.
- Implemented various text styles and layout adjustments for better readability.
- Enhanced Mermaid diagram styles to support Persian text rendering.
2026-04-28 15:27:18 +03:30

3.2 KiB

درسنامه ۳-۷: حلقه‌ها در Bash (for و while)

در این درس با حلقه‌ها در Bash آشنا می‌شویم. حلقه‌ها به شما کمک می‌کنند یک یا چند دستور را چندین بار تکرار کنید؛ مثلا نمایش چند پیام پشت سر هم، پردازش لیستی از فایل‌ها یا شمارش.

در Bash دو حلقهٔ پایه را یاد می‌گیریم:

  • حلقهٔ for
  • حلقهٔ while

حلقه for روی یک لیست ساده

ساختار کلی:

for ITEM in لیست_مقادیر
do
  دستورات
done

مثال ساده:

#!/bin/bash

for NAME in Ali Sara John
do
  echo "Hello $NAME!"
done

خروجی:

Hello Ali!
Hello Sara!
Hello John!

حلقه for روی اعداد

می‌توانیم از گسترش آکلاد استفاده کنیم:

#!/bin/bash

for NUM in {1..5}
do
  echo "Number: $NUM"
done

خروجی:

Number: 1
Number: 2
Number: 3
Number: 4
Number: 5

حلقه for روی فایل‌ها

حلقه‌های for برای کار با مجموعه‌ای از فایل‌ها بسیار مفیدند:

#!/bin/bash

for FILE in *.txt
do
  echo "Processing file: $FILE"
done

در این مثال، اسکریپت همهٔ فایل‌های *.txt در دایرکتوری فعلی را لیست می‌کند و برای هرکدام یک پیام نمایش می‌دهد.

حلقه while — تا وقتی شرط برقرار است

حلقهٔ while یک بلوک کد را تا زمانی که شرط درست است تکرار می‌کند.

ساختار کلی:

while [ شرط ]
do
  دستورات
done

مثال شمارش:

#!/bin/bash

COUNT=1

while [ "$COUNT" -le 3 ]
do
  echo "Loop iteration: $COUNT"
  COUNT=$((COUNT + 1))
done

خروجی:

Loop iteration: 1
Loop iteration: 2
Loop iteration: 3

حلقه while برای گرفتن ورودی تا شرط خاص

یک الگوی رایج: از کاربر ورودی بگیریم تا زمانی که یک مقدار خاص (مثلا exit) وارد کند.

#!/bin/bash

while true
do
  read -p "Type a word (or 'exit' to quit): " WORD

  if [ "$WORD" = "exit" ]; then
    echo "Goodbye!"
    break
  fi

  echo "You typed: $WORD"
done

در این مثال:

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

تمرین کوتاه

  • اسکریپتی بنویسید که با استفاده از حلقهٔ for اعداد ۱ تا ۱۰ را چاپ کند.
  • اسکریپتی بنویسید که با while از کاربر نام بگیرد و هر بار پیام "Hello NAME!" را چاپ کند تا وقتی که کاربر فقط Enter خالی بزند؛ در آن لحظه اسکریپت باید پایان یابد.

در درس بعد، یاد می‌گیریم چگونه با استفاده از case و حلقه‌ها، منوی متنی ساده بسازیم.