از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
برای مثال های حلقه Bash
سرفصلهای مطلب
حلقه ها بخش بسیار مهمی از هر نوع زبان برنامه نویسی یا برنامه نویسی هستند. مانند هر برنامه نویسی استاندارد دیگری، از حلقه ها نیز استفاده می شود bash برنامه نویسی برای انجام کارهای تکراری در میان سه نوع حلقه (while، do-while، for)، حلقه for برای انجام انواع مختلف وظایف تکراری بسیار مفید است. کاربردهای اصلی حلقه “for” در اینجا نشان داده شده است. اما حلقه “for” را می توان برای انجام برخی از وظایف سطح پیشرفته استفاده کرد. اگر می خواهید کاربردهای بیشتری از حلقه for بدانید، باید این آموزش را بخوانید. 12 مثال مفید از حلقه “for” در این آموزش نشان داده شده است تا سایر کاربردهای خاص حلقه “for” را در bash.
نحو:
حلقه for به دو صورت قابل استفاده است bash. یک راه “for-in” و راه دیگر نحو c-style است. هر دو نحو در زیر نشان داده شده است.
انجام دادن
بیانیه
انجام شده
یا
برای (( بیان 1; بیان2; بیان 3 ))
انجام دادن
بیانیه
انجام شده
مثال-1: حلقه برای خواندن متغیر ورودی
لیست رشته ها یا آرایه های از پیش تعریف شده را می توان با استفاده از حلقه “for” که در آموزش قبلی حلقه for نشان داده شده است، به راحتی خواند. روش خواندن محتوای متغیر ورودی با استفاده از حلقه for در این مثال نشان داده شده است. یک فایل با نام ایجاد کنیدforloop1.shبا اسکریپت زیر پس از اجرای اسکریپت، یک مقدار ورودی از یک متن چند کلمه ای گرفته می شود. در اینجا، حلقه for برای تقسیم متن به کلمات بر اساس استفاده می شود روی فضای سفید و print هر کلمه با موقعیت
forloop1.sh
echo “یک متن چند کلمه ای را وارد کنید”
خواندن متن
من=1
برای کلمه که در $text
انجام دادن
echo “کلمه نه-$i = کلمه $“
((من=$i+1))
انجام شده
خروجی:
اسکریپت را اجرا کنید.
در اینجا، یک متن 5 کلمه ای گرفته می شود، بنابراین پنج خط خروجی چاپ می شود.
مثال-2: حلقه For با دستور break
دستور ‘break’ در داخل حلقه ‘for’ استفاده می شود تا از حلقه خاتمه یابد. یک فایل با نام ایجاد کنیدforloop2.sh’ با کد زیر حلقه “for” در اینجا برای خواندن لیستی از چهار نفر استفاده می شود. دو شرط در اینجا آزمایش می شود. اگر نام شخص “امیر و رنگ آن است ‘آبی’ سپس حلقه پس از چاپ نام و رنگ فرد خاتمه می یابد. مقادیر رنگ دومین حلقه for چاپ می شود تا زمانی که مقدار رنگ “آبی” مطابقت داشته باشد.
forloop2.sh
انجام دادن
اگر [ $name == ‘Amir’ ]
سپس
برای رنگ که در قرمز سبز آبی سفید
انجام دادن
اگر [ $color == “Blue” ]
سپس
echo “رنگ مورد علاقه از $name است $ رنگ“
زنگ تفریح
دیگر
echo “رنگ فعلی است $ رنگ“
فی
انجام شده
فی
انجام شده
خروجی:
اسکریپت را اجرا کنید.
پس از اجرای اسکریپت خروجی زیر ظاهر می شود. ابتدا دو رنگ “قرمز” و “سبز” چاپ می شود. هنگامی که مقدار “آبی” ظاهر شد، نام و مقدار رنگ شخص را چاپ می کرد و از حلقه برای عبارت “break” خاتمه می یافت.
مثال-3: حلقه For با دستور continue
عبارت ‘continue’ در داخل حلقه ‘for’ برای رد شدن از هر عبارتی استفاده می شود روی یک شرایط خاص یک فایل به نام ایجاد کنید ‘forloop3.sh’ با اسکریپت زیر در اینجا، یک متغیر به نام دوره های $ برای تعیین مقدار متن استفاده می شود. حلقه ‘for’ برای خواندن متغیر $courses استفاده می شود. مقدار متن بر اساس تقسیم بندی می شود روی فاصله و خواندن توسط حلقه ‘for’. وقتی مقدار، «Oracle» با آن مطابقت دارد دوره $ سپس آن را انجام خواهد داد print اوراکل در حال حاضر در دسترس نیست. برای مقادیر دیگر، «کلاس $course در حال اجرا است». دوره ای که در دسترس نیست آخرین دستور حلقه “for” را برای دستور continue اجرا نمی کند.
forloop3.sh
دوره های آموزشی=“Java PHP Oracle VB.net”
برای دوره که در دوره های $
انجام دادن
اگر [ $course == ‘Oracle’ ]
سپس
echo “$ البته در حال حاضر موجود نیست”
ادامه هید
فی
echo “کلاس از $ البته در حال اجراست”
انجام شده
خروجی:
اسکریپت را اجرا کنید.
پس از اجرای اسکریپت خروجی زیر ظاهر می شود.
مثال-4: استفاده از خروجی فرمان به عنوان لیست
هر bash خروجی فرمان را می توان با استفاده از backtick(`) در حلقه “for” استفاده کرد. یک فایل به نام ایجاد کنید ‘forloop4.sh’ با اسکریپت زیر اینجا، “ls *.txt”. دستور در حلقه استفاده می شود. این دستور لیستی از فایل متنی را از دایرکتوری فعلی ایجاد می کند. حلقه ‘for’ هر نام فایل را از خروجی فرمان تکرار می کند و آن را در متغیر ذخیره می کند $filename که خواهد شد print بعد. اینجا، $n متغیر برای نمایش شماره فایل استفاده می شود.
forloop4.sh
برای نام فایل که در `ls *txt`
انجام دادن
echo “شماره پرونده –$n : $filename“
((n++))
انجام شده
خروجی:
اسکریپت را اجرا کنید.
پس از اجرای اسکریپت خروجی زیر ظاهر می شود.
مثال-5: برای حلقه برای خواندن یک محدوده
حلقه “for” را می توان برای خواندن محدوده داده ها استفاده کرد. مثال زیر محدوده ای از کاراکترها را می خواند و جستجو می کند که هر کاراکتری در متن وجود دارد یا خیر. یک فایل به نام ایجاد کنید ‘forloop5.sh’ و اسکریپت زیر را اضافه کنید. اینجا، محدوده، [A-Z] در حلقه for استفاده می شود. این بدان معناست که حلقه “for” برای هر حرف بزرگ 26 بار تکرار می شود. هر کاراکتر با استفاده از دستور ‘awk’ در $text جستجو می شود. اگر کاراکتری پیدا شود، مقدار را در $result ذخیره می کند. بعد. $result برای هر محتوایی بررسی می شود. اگر خالی نباشد، یک پیام خواهد بود print.
forloop5.sh
برای ج که در {A..Z}
انجام دادن
نتیجه=`printf “$text“ | بیخیال “/$ c/”`
اگر [[ $result != “” ]]
سپس
echo “$ c در متن وجود دارد”
فی
انجام شده
اسکریپت را اجرا کنید.
در اینجا، الفبای “B”، “L” و “S” موجود در متن، “Bash Scripting Language” وجود دارد. بنابراین، سه خط خروجی چاپ می شود.
مثال-6: برای حلقه برای خواندن یک محدوده با افزایش
این مثال نشان میدهد که چگونه میتوانید از حلقه «for» برای پیدا کردن همه اعداد زوج در یک محدوده خاص استفاده کنید. یک فایل به نام ایجاد کنید ‘forloop6.sh’ و اسکریپت زیر را اضافه کنید. در اینجا، طیف وسیعی از [2-20] در حلقه ای استفاده می شود که در آن هر مرحله 2 افزایش می یابد. حلقه 10 بار تکرار می شود و print عدد در هر مرحله
forloop6.sh
برای n که در {2..20..2}
انجام دادن
echo -n “$n “
انجام شده
printf “\nانجام شده\n“
اسکریپت را اجرا کنید.
تمام اعداد زوج بین 2-20 پس از اجرای اسکریپت چاپ می شوند.
مثال-7: حلقه برای کار با فایل
این مثال نشان میدهد که چگونه میتوانید برای خواندن فهرستی از فایلهای خاص، حلقه «for» را انجام دهید. یک فایل با نام، ‘forloop7.sh’ و اسکریپت زیر را اضافه کنید. در اینجا، حلقه برای فهرست تمام فایلهای متنی از فهرست فعلی استفاده میشود و پسوند فایل از ‘.txt’ به ‘.doc’ جایگزین میشود.
forloop7.sh
برای نام فایل که در *txt. انجام دادن
mv “$filename“ “${filename%.txt}.doc”
انجام شده
echo “تعویض با موفقیت انجام شد”
خروجی:
اگر فایل متنی در فهرست فعلی وجود ندارد ابتدا یک فایل متنی ایجاد کنید. در اینجا، یک فایل متنی به نام “newfile.txt” با استفاده از دستور “cat” ایجاد می شود.
اسکریپت ذکر شده در بالا را اجرا کنید.
سپس، با استفاده از دستور ls بررسی کنید که پسوند تغییر کرده یا نه.
مثال-8: حلقه For با دستور sequence
مثال زیر نشان می دهد که چگونه می توانید از ” استفاده کنیددنبالهدر حلقه “for” به print لیستی از شماره های ترتیبی دستور ‘seq’ به طور مشابه مانند محدوده با افزایش کار می کند. یک فایل به نام ایجاد کنید ‘forloop8.sh’ و اسکریپت زیر را اضافه کنید. حلقه خواهد شد print اعداد بین 1 تا 30 با حذف سه عدد در هر مرحله.
forloop8.sh
برای مربع که در $(دنباله 1 3 30)
انجام دادن
echo “شماره ترتیب : $ مربع“
انجام شده
خروجی:
اسکریپت را اجرا کنید.
پس از اجرای اسکریپت خروجی زیر ظاهر می شود.
مثال-9: استفاده از حلقه برای بی نهایت
حلقه بی نهایت می تواند برای انجام هر کار تکراری چندین بار استفاده شود تا زمانی که یک شرط خاص ظاهر شود. یک فایل به نام ایجاد کنید ‘forloop9.sh’ با اسکریپت زیر استفاده از حلقه بی نهایت را بررسی کنید. در اینجا هیچ شرط پایانی در حلقه تعریف نشده است. حلقه منوی 5 لیست را تا زمانی که عدد 5 فشار داده شود نمایش می دهد. خواهد شد print یک پیام خاص برای سایر اعداد از 1 تا 4 و نمایش مجدد منو.
forloop9.sh
انجام دادن
echo “1. چاپ پیام موفقیت آمیز”
echo “2. چاپ پیام اطلاعاتی”
echo “3. چاپ پیام هشدار”
echo “4. print پیغام خطا”
echo “5. خروج”
echo -n “هر شماره ای را انتخاب کنید [1-5]:”
خواندن پاسخ
مورد “$پاسخ“ که در
1) echo “با موفقیت تکمیل شد.” ;;
2) echo “ورودی نامعتبر”;;
3) echo “باتری کامپیوتر شما کم است”;;
4) echo “تعداد آرگومان اشتباهی ارسال شده است”;;
5) خروج 0;;
*) echo “انتخاب اشتباه”;;
اساک
انجام شده
اسکریپت را اجرا کنید.
در اینجا، 9 برای اولین بار فشار داده می شود که در لیست وجود ندارد. برای این ورودی، “انتخاب اشتباه” چاپ می شود و دوباره منو نمایش می دهد. در مرحله بعد، 1 فشار داده می شود و پیغام “با موفقیت تکمیل شد” نمایش داده می شود. بعد، 5 فشار داده می شود تا از برنامه خاتمه یابد.
مثال-10: استفاده از حلقه For بدون لیست.
حلقه ‘for’ را می توان بدون هیچ لیست یا آرایه یا خروجی فرمان استفاده کرد. چگونه می توانید از حلقه “for” برای خواندن آرگومان های خط فرمان استفاده کنید در این مثال نشان داده شده است. یک فایل با نام، ‘forloop10.sh’ و اسکریپت زیر را اضافه کنید. حلقه بر اساس تکرار خواهد شد روی تعداد آرگومان های خط فرمان متغیر $counter برای یافتن هر مرحله از حلقه که در هر مرحله 1 افزایش می یابد استفاده می شود.
forloop10.sh
برای متن
انجام دادن
اگر [ $counter -eq 2 ]
سپس
خ=“رنگ مورد علاقه ی من هست “
elif [ $counter -eq 3 ]
سپس
خ=“من عاشق “
دیگر
خ=“من دوست دارم “
فی
echo “$str $text“
((پیشخوان=شمارنده $+1))
انجام شده
اسکریپت را با مقادیر آرگومان خط فرمان اجرا کنید.
این اسکریپت پیام «من بستنی دوست دارم» را در زمانی که شمارنده $ 1 است، «رنگ مورد علاقه من آبی است» زمانی که شمارنده $ 2 است و «من عاشق برنامه نویسی هستم» زمانی که شمارنده $ 3 است را چاپ کرده است.
مثال-11: خواندن فایل ها و دایرکتوری ها با استفاده از حلقه for
از حلقه for می توان استفاده کرد print لیست فایل ها و پوشه های دایرکتوری فعلی یک فایل با نام ایجاد کنیدforloop11.shو اسکریپت زیر را اضافه کنید. در اینجا، نماد ‘*’ در حلقه ‘for’ برای خواندن فایل ها و پوشه های دایرکتوری فعلی استفاده می شود. حلقه نام هر فایل یا پوشه را در هر مرحله می خواند و print آن را در terminal با یک فضای ‘tab’.
forloop11.sh
برای فهرست که در *
انجام دادن
printf “لیست $\ t“
انجام شده
printf “\n\nانجام شده\n“
اسکریپت را اجرا کنید.
نام فایل ها و پوشه های دایرکتوری فعلی کار پس از اجرای اسکریپت چاپ می شود.
مثال-12: استفاده از کاما در bash سبک سی برای حلقه
حلقه ‘for’ به سبک C نیز در آن پشتیبانی می شود bash و این حلقه ‘for’ سه عبارت دارد. اینها عبارتند از مقداردهی اولیه، شرط پایان و افزایش یا کاهش. اما با استفاده از کاما(,)، می توانید چندین متغیر اولیه را در آن تعریف کنید bash که در این مثال نشان داده شده است. یک فایل با نام، ایجاد کنیدforloop12.sh’ و اسکریپت زیر را اضافه کنید. حلقه “for” تودرتو در این اسکریپت استفاده شده است. دو متغیر مقداردهی اولیه، تیم $، و جرسی دلار در اولین حلقه “for” اعلام می شوند. اولین حلقه زمانی خاتمه می یابد تیم $ بیش از 2 خواهد بود. هیچ متغیر اولیه سازی در حلقه “for” داخلی وجود ندارد و حلقه داخلی در جایی خاتمه می یابد که جرسی دلار بیش از 3 است. جرسی دلار پس از تکمیل حلقه داخلی تکرار روی 1 تنظیم می شود. بنابراین، حلقه بیرونی 2 بار و حلقه داخلی 3 بار تکرار می شود.
forloop12.sh
انجام دادن
برای(( ; پیراهن ورزشی <= 3 ; پیراهن ++))
انجام دادن
echo “تیم نه-تیم $، جرسی نه-جرسی دلار“
انجام شده
پیراهن ورزشی=1
انجام شده
اسکریپت را اجرا کنید.
پس از اجرای اسکریپت خروجی زیر ظاهر می شود.
نتیجه:
در این آموزش سعی شده است بسیاری از کاربردهای موثر حلقه ‘for’ توضیح داده شود. پس از تمرین مثالهای بالا، امیدواریم خوانندگان دانش روشنی در مورد حلقه for به دست آورند و 0 بتوانند از این حلقه به درستی در bash اسکریپت
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 20:54:04