از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Bash Nested For Loop
سرفصلهای مطلب
حلقهها ساختار دادهای هستند که در بسیاری از زبانها برای انجام برخی کارها در تکرارها استفاده میشوند، یعنی به طور مکرر تا رسیدن به هدف واقعی. یکی از حلقه های متعدد برنامه نویسی حلقه “For” است. حلقه “for” را می توان به تنهایی استفاده کرد و گفته می شود که بیش از یک حلقه “for” در یک دنباله “تودرتو” هستند. بنابراین، ما تصمیم گرفتهایم از حلقههای تودرتو در برنامهنویسی Bash در نمونههای مقاله امروز خود استفاده کنیم. بنابراین، اجازه دهید با افتتاحیه شروع کنیم terminal پوسته در سیستم اوبونتو 20.04 از طریق میانبر Ctrl+Alt+T.
مثال 01: Simple For Loop
در داخل terminal پوسته، ما یک فایل Bash جدید با نام ” ایجاد خواهیم کردbash.sh با دستور لمس. این فایل در فهرست اصلی سیستم ما ایجاد خواهد شد. این فایل باید در ویرایشگرهای نانو، vim یا متن باز شود تا کد به آن اضافه شود. بنابراین، ما این فایل جدید ایجاد شده را از پوشه اصلی در ویرایشگر “nano” مطابق دستور زیر نشان داده شده است در پوسته و نام یک فایل را باز کرده ایم.
$ نانو bash.sh
را اضافه کرده ایم bash پسوند در فایل Bash به صورت “#!/bin/bash”. حلقه ساده “for” با دو براکت “ساده” مانند زیر شروع شده است. این حلقه با مقدار 1 (متغیر I) شروع شد و تا زمانی که مقدار برابر با 5 شود ادامه خواهد داشت. بخش “do” حلقه “for” در اینجا نمایش داده می شود. در هر تکرار، قسمت “do” اجرا می شود و دستور echo عدد تکرار را با استفاده از “$i” در آن نشان می دهد. عبارت “انجام شد” پایان حلقه را نشان می دهد. بیایید کد Bash خود را برای اجرا ذخیره کنیم. Ctrl+X را برای خروج فشار دهید. کد در اینجا پیوست شده است.
در اجرای این فایل Bash، همه اعداد تکرار را چاپ کرده ایم روی پوسته. خروجی در تصویر چسبانده شده ارائه شده است.
مثال 02: Nest For Loop
بیایید با Nest for loop شروع کنیم. برای این کار، باید دو حلقه “for” را یکی پس از دیگری به ترتیب در کد Bash اضافه کنیم. بنابراین، ما همان فایل را باز کرده و کد خود را به صورت زیر به روز کرده ایم. هر دو حلقه “for” از 1 شروع می شوند و به مقدار 3 با افزایش 1 خاتمه می یابند. حلقه داخلی به طور کامل اجرا می شود، یعنی تا سه مقدار، روی اولین اجرای حلقه بیرونی در تکرار بعدی حلقه بیرونی، حلقه “for” داخلی 3 بار دوباره به مقدار 3 و به همین ترتیب اجرا می شود. روی برای آخرین تکرار نیز. حلقه داخلی 9 بار تکرار می شود، در حالی که حلقه بیرونی 3 بار به این ترتیب عمل می کند. حلقه بیرونی نمی تواند به افزایش بعدی خود برود تا زمانی که حلقه داخلی 3 بار خود را به طور کامل اجرا کند. حلقه داخلی مسئول نشان دادن تعداد تکرار حلقه بیرونی و همچنین حلقه داخلی با استفاده از عبارت “echo” در عبارت “do” آن خواهد بود. هر دو حلقه از طریق “انجام شد” به پایان رسیده اند. کد در اینجا پیوست شده است.
در اجرای این کد به روز شده با دستور Bash، حلقه داخلی 9 بار یعنی 3 بار برای هر تکرار حلقه بیرونی اجرا می شود. خروجی در تصویر چسبانده شده ارائه شده است.
مثال 03: Nested For Loop در یک خط
حلقه “for” تودرتو را می توان در کد Bash در یک خط استفاده کرد. بنابراین، ما همان فایل Bash را پس از باز کردن آن در ویرایشگر نانو به صورت زیر به روز کرده ایم. برای اولین حلقه “for” از مقادیر x، y و z استفاده کرده ایم. برای حلقه “for” داخلی، از سه عدد 1، 3 و 5 استفاده کرده ایم. در دستور “do” هر دو مقدار تکرار حلقه داخلی و خارجی نمایش داده می شود. هر دو حلقه با استفاده از بندهای “انجام شد” که در زیر نشان داده شده است به پایان می رسند. کد در اینجا پیوست شده است.
در اجرای این قطعه کد 1 خطی، خروجی زیر را نشان داده ایم. برای هر مقدار از حلقه بیرونی، حلقه داخلی تا سه مقدار آن یعنی 1، 3، 5 اجرا می شود. خروجی در تصویر چسبانده شده ارائه می شود.
مثال 04: Nested For Loop
بیایید مثال دیگری را برای نشان دادن عملکرد حلقه “for” تودرتو بیاوریم. این بار، ما از حلقه بیرونی در مجموع 10 تکرار از 1 تا 10 استفاده کردهایم. در این حلقه، یک حلقه “for” دیگر استفاده شده است. حلقه “for” داخلی از تابع “seq” برای ایجاد دنباله ای از هر کاراکتر ضرب در مقدار تکرار حلقه بیرونی استفاده می کند. این بدان معناست که مقدار حلقه بیرونی تعیین می کند که چه تعداد از کاراکترها نمایش داده می شوند روی پوسته. در حلقه داخلی، از دستور “echo” با استفاده از پرچم “-n” استفاده کردهایم تا بررسی کنیم که آیا رشته بعدی که در دستور درج میشود کاراکتری است یا خالی است. کاراکتر “*” به عنوان یک مقدار اضافه شده است تا در عدد تکرار ضرب شود. اولین حلقه “for” به پایان می رسد و یک دستور “echo” دیگر برای قرار دادن شکست خط استفاده می شود. حلقه for بیرونی پس از 10 تکرار به پایان می رسد. بیایید این کد را ذخیره کنیم تا نتیجه آن را ببینیم روی پوسته. کد در اینجا پیوست شده است.
در اجرای این کد Bash، الگوی زیبای نویسههای «*» را در زیر نشان داده شدهایم که به ترتیب 1 تا 10 به تدریج افزایش مییابد. خروجی در تصویر چسبانده شده ارائه شده است.
نتیجه
به طور خلاصه، همه اینها در مورد استفاده از حلقه “برای” تودرتو در اسکریپت Bash سیستم لینوکس اوبونتو 20.04 بود. ما مثال هایی را برای دیدن یک حلقه “for” ساده در Bash، حلقه “for” تودرتو، و یک حلقه “for” تودرتوی یک خطی در اسکریپت Bash مورد بحث قرار داده ایم.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 02:24:05