از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
برای تکرار از طریق یک آرایه، حلقه «For» را بشکنید
سرفصلهای مطلب
حلقه “for” بخش اساسی تقریباً هر زبان برنامه نویسی است. این به نوشتن کدی که می خواهید به تعداد دلخواه تکرار شود کمک می کند. برای سیستمهای مبتنی بر لینوکس، Bash همچنین دارای نحو اختصاصی است که به کاربرانش امکان میدهد از حلقههایی برای خودکارسازی وظایف روزانه خود از طریق اسکریپتها استفاده کنند.
اگرچه میتوانید از حلقه «for» در تعداد بینهایتی از سناریوها استفاده کنید، این راهنما به سه سناریو اساسی نگاه میکند که میتوانید برای دستیابی به اهداف بزرگتر به سناریوهای گستردهتر و پیچیدهتر متصل شوید. ما سه سناریوی اساسی را بررسی خواهیم کرد که از حلقه for برای تکرار در یک آرایه استفاده می کنند.
برای نشان دادن عملکرد حلقه “For”، اسکریپت های Bash را با استفاده از اوبونتو 22.04 نشان می دهم.
ایجاد فایل Bash
قبل از بررسی سناریوها، اجازه دهید فایل Bash خود را ایجاد کنیم که حاوی اسکریپت Bash ما خواهد بود. به سادگی به دایرکتوری مورد نظر خود در مسیر بروید terminal و با استفاده از دستور “nano” یا “touch” یک فایل ایجاد کنید.
برای این راهنما، من یک فایل “test.sh” در فهرست “اسناد” خود ایجاد خواهم کرد.
با این کار فایل Bash شما با استفاده از ویرایشگر متن نانو باز می شود.
در اینجا، می توانید شروع به نوشتن کد مورد نظر در فایل اسکریپت خود کنید. بیایید با بررسی سناریوها شروع کنیم.
استفاده از حلقه “for” برای نمایش محتویات یک آرایه
با باز شدن فایل Bash شما در ویرایشگر، می توانیم شروع به اضافه کردن کد به آن کنیم. برای مشخص کردن اینکه این یک فایل Bash است، باید موارد زیر را مشخص کنید:
ابتدا باید یک آرایه تعریف کنیم و پنج مقدار به آن اختصاص دهیم. بیایید نام های جان، جین، جیم، جک و جنیس را اختصاص دهیم.
الان قسمت خوبش شروع میشود؛ ما باید حلقه for را تنظیم کنیم، که با استفاده از تکرار کننده “i” در محتویات آرایه تکرار می شود و عملکرد نمایش را انجام می دهد. شما می توانید آن را به این صورت انجام دهید:
این خط حلقه را تنظیم می کند. با نماد “$”، ما مشخص می کنیم که سعی می کنیم به مقدار شاخص خاص آرایه دسترسی پیدا کنیم. نماد “@” به نمایه آرایه اشاره دارد که حاوی مقداری است که ما سعی می کنیم با استفاده از تکرار کننده “i” به آن دسترسی پیدا کنیم.
در اسکریپت نویسی Bash، نحو حکم می کند که عملکرد خود را در کلیدواژه های “do” و “done” مشخص کنیم. بنابراین، همانطور که سعی می کنیم محتویات آرایه را نمایش دهیم، آن را مطابق شکل زیر تایپ می کنیم:
این کار تمام محتویات آرایه را مرور می کند و آنها را یکی یکی نمایش می دهد. حال، اسکریپت ما به شکل زیر است:
“Ctrl+O” را برای ذخیره محتویات این فایل اسکریپت و “Ctrl+X” را برای خروج از ویرایشگر نانو فشار دهید.
اجرای اسکریپت
با وجود همه کدهای موجود، ممکن است تعجب کنید که چگونه می توانید این کد را برای دیدن خروجی اجرا کنید. در شما terminal، نوع:
در اینجا می توانید نام های نمایش داده شده را همانطور که ما آنها را تعریف کرده ایم مشاهده کنید.
استفاده از حلقه “for” برای نوشتن محتویات یک آرایه در یک فایل متنی
این سناریو در مواردی که خروجی یک سناریوی خاص را در یک آرایه دریافت می کنیم به خوبی کار می کند و باید محتوای آرایه را برای مراجعات بعدی یا محاسبه دیگری خروجی بگیریم.
بنابراین، بیایید کدی را که در سناریوی قبلی نوشته بودیم برداریم و آن را اصلاح کنیم. به جای اینکه هر ورودی در آرایه را یکی یکی چاپ کنیم، باید آن را در یک فایل متنی بنویسیم. فایل اسکریپت خود را با استفاده از:
اکنون، همانطور که آرایه ای به نام “writers” داریم، آنها را با استفاده از نمادهای >> در فایلی به نام “writers.txt” می نویسیم. بنابراین کد شما باید به شکل زیر باشد:
برای اجرای اسکریپت فایل را ذخیره کرده و از آن خارج شوید.
اجرای اسکریپت
مشابه سناریوی قبلی، می توانید اسکریپت به روز شده را با استفاده از:
این بار که کد را اجرا می کنید، خواهید دید که هیچ خروجی در آن وجود نخواهد داشت terminal. این به این دلیل است که کد همه چیز را به فایل متنی خروجی می دهد. یک فایل متنی در همان دایرکتوری ایجاد می شد.
پس از باز کردن فایل (شما فقط می توانید دوبار کلیک کنید روی فایلی که آن را باز کنید)، خواهید دید که نام ها به فایل اضافه شده اند:
استفاده از حلقه “for” برای مقایسه یک رشته داده شده با عناصر آرایه
ما از همان اسکریپت Bash برای این سناریو استفاده می کنیم و آن را بیشتر گسترش می دهیم.
ساختار اصلی کد ما ثابت می ماند و باید محتویات کد حلقه را به روز کنیم. با استفاده از همان اسکریپت، خواهیم دید که آیا نام ارائه شده ما با هر یک از نام های موجود در آرایه مطابقت دارد یا خیر. اگر چنین شد، ما به آنها سلام خواهیم کرد. برای نام های دیگر آرایه، فقط آنها را نمایش می دهد.
بیایید فایل خود را با استفاده از “nano” باز کنیم:
اکنون، میخواهیم کد بین کلیدواژههای do و done را به شکل زیر بهروزرسانی کنیم:
این کد در زمان اجرا بررسی می کند که آیا هر یک از نام های آرایه با “Janis” مطابقت دارد یا خیر، سپس “Hi Janis” را نمایش می دهد. در غیر این صورت، فقط نام ها را نمایش دهید. کد شما باید به شکل زیر باشد:
برای اینکه بتوانید این کد را اجرا کنید، باید فایل را ذخیره کرده و از ویرایشگر متن خارج شوید.
اجرای اسکریپت
وقتی دوباره در terminal، می توانید از همان برای اجرای اسکریپت Bash اصلاح شده خود استفاده کنید:
نتیجه
این سه نمونه بسیار ابتدایی از استفاده از حلقه “for” در اسکریپت های Bash شما هستند. همانطور که به یادگیری بیشتر در مورد کارهایی که این اسکریپت ها می توانند انجام دهند ادامه می دهید، خواهید دید که این حلقه بسیار مفید است و می توان از آن در کدهای بسیار پیچیده استفاده کرد. برای درک بهتر اسکریپت و استفاده از آن در عملیات روزانه خود، باید این اجزای اصلی کد و آنچه که نحو انجام می دهد را بدانید.
اگر با هر یک از این سناریوها به مشکل برخوردید یا میخواهید درباره حلقهها یا اسکریپتنویسی Bash اطلاعات بیشتری کسب کنید، از طریق بخش نظرات با ما درگیر شوید و ما خوشحال میشویم که به شما کمک کنیم. به سلامتی.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 22:05:04