از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
تسلط بر حلقه های Bash “For”: راهنمای گام به گام
سرفصلهای مطلب
این راهنما در مورد حلقه های Bash “for” است. ما نحوی که باید دنبال شود را درک خواهیم کرد و مثالهای متعددی از نمونهها و روشهای استفاده از حلقههای Bash “for” ارائه میکنیم. بیا شروع کنیم!
روش استفاده از حلقه های Bash “For”.
برای استفاده از حلقههای «for» در Bash، باید اسکریپت خود را ایجاد کنید و تعریف کنید که از چه متغیرهایی برای حلقه استفاده کنید. در حالت ایده آل، حلقه “for” متکی است روی متغیرها و دستورات ارائه شده برای اجرا مطابق با انتظارات شما.
بیایید یک فایل Bash ایجاد کنیم که برای این آموزش استفاده خواهیم کرد. در اینجا، ما از ویرایشگر نانو استفاده می کنیم، اما شما می توانید از ویرایشگرهای دیگر مانند Vim استفاده کنید. ما اسکریپت خود را “linuxint.sh” نام گذاری می کنیم.
برای درک ساختار حلقه های Bash “for”، اجازه دهید اسکریپتی ایجاد کنیم که از یک حلقه “for” برای تکرار متغیرهای ارائه شده همانطور که در زیر نشان داده شده است استفاده می کند:
در اسکریپت قبلی، بیایید هر خط کد را تشریح کنیم تا آن را با جزئیات درک کنیم.
- #!/bin/bash – این اولین خط در اسکریپت ما است و آن را اضافه می کنیم تا نمادی باشد که در حال ایجاد یک اسکریپت Bash هستیم.
- برای x در 1 2 3 – در اینجا “for” مخفف حلقه است. “x” متغیر متغیر است و مواردی که باید تکرار شوند “1، 2 و 3” هستند.
- انجام دادن – برای نماد شروع حلقه “for” اضافه شده است. در زیر آن، جایی است که شما دستوراتی را که می خواهید برای هر حلقه اجرا کنید، اضافه می کنید. به عنوان مثال، ما از دستور “echo” برای خروجی “Number” و مکان نگهدار برای هر آیتمی که اضافه کردیم استفاده می کنیم.
- انجام شده -ما این کلمه کلیدی را اضافه می کنیم تا پس از انجام همه تکرارها، حلقه متوقف شود.
اکنون که حلقه “for” خود را در اسکریپت Bash ایجاد کرده ایم، فایل را ذخیره کرده و از آن خارج شوید. ابتدا باید مجوز اجرایی را برای اجرای اسکریپت اضافه کنیم.
سپس اسکریپت را مطابق شکل زیر اجرا کنید. مراقب باشید که چگونه حلقه Bash “for” را در حال تکرار موارد در متغیر متغیر همانطور که انتظار می رود دریافت می کنیم. اینگونه است که حلقه “for” Bash در شکل اصلی خود کار می کند.
کار با Ranges
حلقه “for” عمدتا زمانی استفاده می شود که می خواهید با محدوده ای در اسکریپت خود کار کنید. می توانید شروع و پایان محدوده را تعریف کنید. به عنوان مثال، اگر میخواهید نسخه کوتاهتری از دستور قبلی را برای کار با محدوده 1 تا 5 پیادهسازی کنید، میتوانید پیادهسازی حلقه «for» را به شکل زیر تغییر دهید:
اجرای قبلی با Bash نسخه 4+ کار می کند. اگر اسکریپت را اجرا کنیم، باز هم خروجی مشابهی دریافت می کنیم.
فرض کنید میخواهید یک فرمان «پینگ» را برای محدوده دادهشده IP شبکهتان خودکار کنید. پینگ کردن همه IP ها زمان بر است و روشی قدیمی برای انجام کارها است. بهترین گزینه ایجاد محدوده ای برای IP ها با استفاده از حلقه های Bash “for” است.
در مثال زیر اولین مجموعه را برای محدوده IP ها مشخص می کنیم و محدوده را با استفاده از حلقه for تعریف می کنیم. در قسمت “do”، آن را طوری تنظیم می کنیم که برای هر تکرار در محدوده، دستور “ping” را اجرا کند.
مراقب باشید که چگونه از حلقه های Bash “for” برای خودکارسازی استفاده می کنیم process و هر IP را در محدوده ما پینگ کنید.
کار با افزایش دامنه
تعریف یک افزایش برای حلقه “for” خود هنگام کار با طیف وسیعی از موارد ممکن است. فرض کنید برای تمام IP هایی که می خواهید پینگ کنید، 3 افزایش می خواهید. برای این کار، گزینه increment را مانند شکل زیر اضافه کنید:
هنگامی که اسکریپت Bash را اجرا می کنید، متوجه خواهید شد که برای هر پینگ، ما موفق می شویم هر IP را با افزایش 3 پینگ کنیم.
کار با چند دستور در حلقه های Bash “For”.
هنگام ایجاد اسکریپت خود، حلقه “for” به شما امکان می دهد چندین دستور را زنجیره ای کنید. موارد متعددی وجود دارد که زنجیرهای کردن دستورات مفید است. با حلقه “for” می توانید هر تعداد دستور را در حلقه “for” زنجیره بزنید. هنگامی که اسکریپت را اجرا می کنید، تمام دستورات زنجیره ای همانطور که انتظار می رود اجرا می شوند.
فرض کنید میخواهید همه فایلهای دایرکتوری فعلی را با پسوند «.txt» فهرست کنید و سپس نام آنها را تغییر دهید تا پسوند حذف شود. شما می توانید به راحتی دستورات را زنجیره ای کنید.
ابتدا، اجازه دهید تأیید کنیم که فایل های متنی را با استفاده از دستور “ls” در دایرکتوری خود داریم.
سپس، بیایید حلقه Bash “for” خود را ایجاد کنیم که فایل های موجود را بررسی می کند روی دایرکتوری و آنهایی را که پسوند «.txt» دارند فهرست می کند. در بخش “do” از دستور echo برای فهرست کردن فایلهای متنی موجود استفاده میکنیم. سپس، آن را با دستور “mv” زنجیر می کنیم تا نام فایل ها را تغییر دهیم تا به حذف پسوند کمک کنیم. در نهایت، ما تکرار می کنیم که فایل ها تغییر نام داده اند.
ویرایشگر متن را ذخیره کرده و از آن خارج شوید. هنگامی که اسکریپت را اجرا می کنیم، توجه کنید که چگونه توانستیم تمام فایل های متنی موجود را فهرست کرده و نام آنها را تغییر دهیم.
اگر بخواهیم تمام فایل های متنی را لیست کنیم، با خطا مواجه می شویم. وقتی دستور “ls” را تغییر میدهیم، میتوانیم تأیید کنیم که فایلهای قبلی ما اکنون پسوند “.txt” ندارند زیرا توانستیم با استفاده از حلقه “for” Bash آن را حذف کنیم.
Bash “For” عبارات متعددی را حلقه می کند
شما می توانید یک حلقه سه عبارت Bash “for” ایجاد کنید. اولین عبارت در حلقه “for” اولیه ساز است که زمینه را برای حلقه تنظیم می کند. عبارت دوم شرطی است که اجرای حلقه را تضمین می کند، مشروط بر اینکه شرط درست باشد. سومین عبارت عبارت شمارش است که عمدتاً افزایش یا کاهش است.
دستور زیر برای استفاده است:
انجام دادن
command_1
command_n
انجام شده
بیایید یک مثال ساده داشته باشیم که در آن یک حلقه Bash “for” برای چاپ اعداد از 10 تا 1 ایجاد می کنیم. برای آن، عبارت one ما 10 است و 1 شرط است. حلقه “for” Bash به شرح زیر است:
اگر اسکریپت را اجرا کنیم، می توانیم تأیید کنیم که با موفقیت اجرا می شود.
Loop “For” را بزنید. پرش و ادامه دهید
حتی با حلقه های Bash “for”، می توانید یک پرش ایجاد کنید و حلقه “for” را ادامه دهید. حالتی را تصور کنید که میخواهید اسکریپت را خودکار کنید، اما میخواهید شرایط مشخصی را تأیید کنید. در صورت برآورده شدن شرایط، می توانید از حلقه رد شده و با آن ادامه دهید.
هنگامی که دستور را اجرا کردید، متوجه خواهید شد که وقتی متغیر هنگام اجرا با “4” ملاقات می کند، از آن می گذرد و به اجرای حلقه ادامه می دهد. می توانید همین مفهوم را برای اجرای هر حلقه Bash “for” برای برآورده کردن دستور کار خود اعمال کنید.
شکستن حلقه “For” را بشکنید
شما می توانید یک حلقه Bash “for” را پیاده سازی کنید که با برآورده شدن یک شرط معین می شکند. برای مثال، فرض کنید میخواهید فهرستی از فایلها را حلقه بزنید و تنها زمانی شکسته میشوید که یک شرط معین برآورده شود. حلقه “for” Bash تنها در صورتی شکسته می شود که شرط موجود در دستور “if” برآورده شود. در غیر این صورت، به حلقه زدن ادامه می دهد.
در اینجا مثالی از حلقه “for” Bash برای شکستن حلقه شرطی آورده شده است:
حلقه قبلی Bash “for” اجرا خواهد شد. وقتی “file2” برآورده شود، خراب می شود. تصویر زیر روش اجرای حلقه را نشان می دهد. توجه داشته باشید که چگونه فایلهای دیگر بازتاب داده نمیشوند زیرا شرط موجود در عبارت «if» برآورده شده است.
یک کاربرد واقع بینانه مثال قبلی حلقه زدن از طریق رشته ها زمانی است که می خواهید بسته های متعددی را با یک اسکریپت نصب کنید. به عنوان مثال، فرض کنید می خواهید سه بسته را نصب کنید. برای آن، شما باید حلقه “for” Bash خود را به صورت زیر بنویسید:
هنگامی که اسکریپت را اجرا می کنید، بسته های اضافه شده شروع به نصب می کنند روی سیستم شما
این گزینه استفاده از حلقه های Bash “for” نصب سریع بسته های متعدد تنها با یک اسکریپت را آسان می کند.
Infinity Bash “For” Loop
در برخی موارد نادر، ممکن است بخواهید یک حلقه Bash بی نهایت “for” ایجاد کنید. برای آن، شما از “;” استفاده می کنید. در حلقه for و سپس دستور اجرای بی نهایت را صادر کنید.
هنگامی که اجرا می شود، حلقه شما برای همیشه اجرا می شود مگر اینکه برای خاتمه آن، “Ctrl + C” را فشار دهید.
مقادیر حلقه Bash
می توانید دستورات مختلفی را اجرا کنید روی شما terminal برای انجام یک کار معین به عنوان مثال، دستور “ls” به شما امکان می دهد تمام فایل های موجود در فهرست فعلی را فهرست کنید. شما می توانید همان دستور را در اسکریپت خود با استفاده از حلقه “for” Bash اجرا کنید. نگاهی بیاندازید!
با اجرای حلقه قبلی Bash “for”، ما موفق می شویم تمام فایل های دایرکتوری فعلی را همانطور که در زیر نشان داده شده است لیست کنیم:
به طور مشابه، فرض کنید می خواهید یک دنباله معین را فهرست کنید. به جای استفاده از دستور “seq”، می توانید همان را با استفاده از حلقه “for” Bash مانند مثال زیر پیاده سازی کنید:
اسکریپت قبلی دنباله اعداد از 1 تا 8 را چاپ می کند.
اشکال زدایی حلقه های Bash “For”.
اشکال زدایی بخشی از زندگی روزمره ماست. هنگام کار با اسکریپت Bash می توانید از گزینه حلقه “for” برای رفع اشکال اسکریپت خود استفاده کنید. ممکن است در اسکریپت خطایی داشته باشید و نخواهید نمایش داده شود روی را terminal. در این صورت، می توانید یک فایل خروجی ایجاد کنید که حاوی اطلاعات اشکال زدایی با استفاده از حلقه “for” باشد. به این ترتیب، رابط کاربری تمیزی را حفظ خواهید کرد.
در تصویر قبلی، ما یک حلقه “for” برای تکرار دنباله ای از IP ها با افزایش 3 ایجاد کردیم. در خط آخر، مشخص کردیم که هرگونه اطلاعات اشکال زدایی یا خروجی حلقه “for” باید در “ips” ذخیره شود. فایل -output.txt”. بیایید اسکریپت را اجرا کنیم تا ببینیم چه اتفاقی می افتد:
ما متوجه شدیم که از آنجایی که تمام خروجی ها به فایل مشخص شده هدایت می شوند، توانستیم فضای کاری تمیزی را حفظ کنیم. برای اشکالزدایی اسکریپت، فایل خروجی را که با استفاده از ویرایشگر متن یا دستوری مانند «cat» ایجاد میشود، باز کنید و ببینید چه چیزی در آن وجود دارد. در مورد ما، فایل خروجی نشان می دهد که پس از اجرای دستورات در حلقه “for” Bash ما چه انتظاری داشتیم. اگر دستورات اجرا نشدند، از این فایل خروجی برای اشکال زدایی اسکریپت خود استفاده کنید.
نتیجه
استفاده از Bash در بسیاری از کارها به خصوص در اتوماسیون مفید است. هنگام ایجاد اسکریپت Bash می توانید از حلقه های “for” برای دستیابی به عملکردهای مختلف استفاده کنید. این پست روش عملکرد حلقه “for” را توضیح داد و نمونه ها و مثال های متعددی را ارائه کرد روی روش ایجاد حلقه های Bash “for”. امیدواریم اکنون بتوانید حلقه های “for” را در اسکریپت Bash خود بنویسید. خودشه!
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-28 17:08:03