درسنامه ۳-۷: حلقهها در Bash (for و while)
در این درس با حلقهها در Bash آشنا میشویم. حلقهها به شما کمک میکنند یک یا چند دستور را چندین بار تکرار کنید؛ مثلا نمایش چند پیام پشت سر هم، پردازش لیستی از فایلها یا شمارش.
در Bash دو حلقهٔ پایه را یاد میگیریم:
- حلقهٔ for
- حلقهٔ while
حلقه for روی یک لیست ساده
ساختار کلی:
مثال ساده:
خروجی:
حلقه for روی اعداد
میتوانیم از گسترش آکلاد استفاده کنیم:
خروجی:
حلقه for روی فایلها
حلقههای for برای کار با مجموعهای از فایلها بسیار مفیدند:
در این مثال، اسکریپت همهٔ فایلهای *.txt در دایرکتوری فعلی را لیست میکند و برای هرکدام یک پیام نمایش میدهد.
حلقه while — تا وقتی شرط برقرار است
حلقهٔ while یک بلوک کد را تا زمانی که شرط درست است تکرار میکند.
ساختار کلی:
مثال شمارش:
#!/bin/bash
COUNT=1
while [ "$COUNT" -le 3 ]
do
echo "Loop iteration: $COUNT"
COUNT=$((COUNT + 1))
done
خروجی:
حلقه 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 و حلقهها، منوی متنی ساده بسازیم.