99fb7f0e82
- 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.
3.2 KiB
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 و حلقهها، منوی متنی ساده بسازیم.