وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

حلقه تودرتو در نمونه های اسکریپت Bash

0 13
زمان لازم برای مطالعه: 2 دقیقه


در برنامه نویسی یا اسکریپت، حلقه یکی از اساسی ترین و قوی ترین مفاهیم است. یک حلقه در حال انجام وظایف خاصی است تا زمانی که شرایط مشخص شده برآورده شود. هر زبان برنامه نویسی یا برنامه نویسی روش های مختلفی برای پیاده سازی مفهوم دارد.

در این راهنما، حلقه تو در تو را بررسی کنید bash اسکریپت نویسی

حلقه تو در تو

یک حلقه، طبق تعریف، انجام وظایف خاصی است تا زمانی که شرایط برآورده شود. اگر کار شامل اجرای یک حلقه باشد چه؟ این مفهوم یک حلقه تو در تو است. یک حلقه در یک حلقه.

این ساختار اصلی یک حلقه است.

در حالی که (وضعیت){

#چیزی

}

در اینجا، حلقه while حفظ خواهد شد روی انجام وظایف اعلام شده در داخل بلوک تا زمانی که شرط برقرار باشد. در مورد حلقه while تو در تو، ساختار به این شکل خواهد بود.

# حلقه اصلی

در حالی که (وضعیت){

# حلقه تو در تو

در حالی که(وضعیت){

#چیزی

}

}

در تئوری، حلقه های تو در تو می توانند به عمق بی نهایت بروند. در بسیاری از موقعیت ها، حلقه های تو در تو می توانند راه حل مناسبی باشند.

حلقه در bash اسکریپت

Bash یک زبان برنامه نویسی قدرتمند است. ساختارهای حلقه متفاوتی در آن وجود دارد bash. محبوب ترین آنها حلقه های for، while و while هستند. اگر قبلاً با برنامه نویسی C/C++ آشنا هستید، قطعاً سینتکس کاملاً مشابه به نظر می رسد.

برای حلقه ها

حلقه For یکی از رایج ترین و پرکاربردترین فرم ها خروجی ها و غیره است. ساختار حلقه ها در bash اسکریپت نویسی این ساختار همچنین در C/C++ بسیار شبیه حلقه for است.

ساختار حلقه for در bash به شرح زیر است.

برای ((مقداردهی اولیه وضعیت ؛ افزایش)); انجام دادن

#چیزی

انجام شده

ساختار بسیار خود توضیحی است. بخش مقداردهی اولیه اجباری نیست. با این حال، شرایط و افزایش اولویت بالاتری دارند.

پیشنهاد می‌کنیم بخوانید:  هنگام خواندن Stdin، اسکریپت را به while Loop تبدیل کنید

بیایید آن را عملی کنیم. در اینجا بسیار ساده است bash اسکریپتی که برای حلقه پیاده سازی می کند.

برای ((من = 0 ; من < 5 ; i++)); انجام دادن

echo “سلام دنیا”

انجام شده

حلقه تودرتو در نمونه های اسکریپت Bash

حلقه تودرتو در نمونه های اسکریپت Bashحلقه تودرتو در نمونه های اسکریپت Bash

همچنین می توان از list/range به عنوان شرط حلقه استفاده کرد. اگر با فهرستی از فایل‌ها، محدوده‌های اعداد، آرایه‌ها، خروجی‌های فرمان و غیره کار کنید، این کار به‌ویژه مفید است. ساختار چیزی شبیه به این است.

برای مورد که در <فهرست>; انجام دادن

#چیزی

انجام شده

حلقه تودرتو در نمونه های اسکریپت Bashحلقه تودرتو در نمونه های اسکریپت Bash

حلقه تودرتو در نمونه های اسکریپت Bashحلقه تودرتو در نمونه های اسکریپت Bash

به عنوان مثال، اسکریپت زیر خواهد بود print “سلام دنیا” پنج بار.

برای من که در {1..5}; انجام دادن

echo “سلام دنیا”

انجام شده

اگر بخواهیم با محتویات یک دایرکتوری کار کنیم چه؟ در مثال زیر، اسکریپت خواهد شد print تمام فایل های موجود در پوشه /usr/bin.

برای من که در /usr/صندوقچه/*; انجام دادن

echo $i

انجام شده

حلقه تودرتو در نمونه های اسکریپت Bashحلقه تودرتو در نمونه های اسکریپت Bash

حلقه تودرتو در نمونه های اسکریپت Bashحلقه تودرتو در نمونه های اسکریپت Bash

حالا برای داشتن یک حلقه for تو در تو چه کار کنیم؟ این فقط یک حلقه برای در داخل دیگری است. در اینجا یک حلقه برای تو در تو با استفاده از مثال قبلی آورده شده است.

برای ((من = 0 ; من < 3 ; i++)); انجام دادن

برای((j = 0 ; j < 2 ; j++)); انجام دادن

echo “سلام دنیا”

انجام شده

انجام شده

حلقه تودرتو در نمونه های اسکریپت Bashحلقه تودرتو در نمونه های اسکریپت Bash

حلقه تودرتو در نمونه های اسکریپت Bashحلقه تودرتو در نمونه های اسکریپت Bash

خروجی 6 بار “سلام جهان” خواهد بود. حلقه بیرونی سه بار اجرا می شود و حلقه داخلی دو بار اجرا می شود.

در حالی که حلقه ها

حلقه while یکی دیگر از حلقه‌های محبوب و شهودی است که در آن موجود است bash اسکریپت نویسی نحو به این شکل است.

در حالی که <وضعیت>; انجام دادن

#چیزی

انجام شده

حلقه تودرتو در نمونه های اسکریپت Bashحلقه تودرتو در نمونه های اسکریپت Bash

حلقه تودرتو در نمونه های اسکریپت Bashحلقه تودرتو در نمونه های اسکریپت Bash

در مثال زیر، اسکریپت خواهد شد print “سلام دنیا” پنج بار.

تعداد=1

در حالی که [ $num -le 5 ]; انجام دادن

echo “سلام دنیا”

تعداد=$((تعداد $+1))

انجام شده

حلقه تودرتو در نمونه های اسکریپت Bashحلقه تودرتو در نمونه های اسکریپت Bash

حلقه تودرتو در نمونه های اسکریپت Bashحلقه تودرتو در نمونه های اسکریپت Bash

داشتن یک حلقه while تو در تو چگونه به نظر می رسد؟ در اینجا یک مثال ساده است.

num_a=1

بی‌حس=1

در حالی که [ $num_a -le 5 ]; انجام دادن

در حالی که [  $num_b -le 5 ]; انجام دادن

echo “سلام دنیا”

بی‌حس=$(($num_b+1))

پیشنهاد می‌کنیم بخوانید:  حلقه Bash از طریق فایل ها در یک دایرکتوری؟

انجام شده

num_a=$(($num_a+1))

انجام شده

تا حلقه ها

اگر پس زمینه برنامه نویسی در C/C++ دارید، پس با حلقه do-while آشنا هستید. متاسفانه، bash همچین چیزی نداره با این حال، تا زمانی که حلقه به روشی مشابه عمل کند. نحو نیز کاملاً مشابه به نظر می رسد.

تا زمان [ <condition> ]; انجام دادن

#چیزی

انجام شده

تفاوت بین while و while شرط تست است. تا زمانی که شرط تست درست باشد، یک حلقه while به کار خود ادامه خواهد داد. با این حال، یک حلقه تا زمانی که شرط نادرست باشد به کار خود ادامه خواهد داد.

در اینجا یک مثال سریع از حلقه while آورده شده است. خواهد شد print جدول ضرب 2

num_a=1

تا زمان [ $num_a -gt 10 ]; انجام دادن

echo $(($num_a * 2))

num_a=$(($num_a+1))

انجام شده

شکستن حلقه

در شرایط خاص، اگر شرایط خاصی برآورده شود، اجرای بقیه حلقه اضافی می شود. شکستن حلقه یک ویژگی جالب است که اجازه می دهد تا در یک شرایط خاص از حلقه خارج شوید. برای حلقه‌های تو در تو مهم‌تر است، زیرا هرچه حلقه‌ها بیشتر باشد، مصرف منابع و ناکارآمدی بیشتر است.

در اینجا، حلقه for زیر به محض رسیدن به شرط، اجرای آن متوقف خواهد شد.

برای ((من=1؛من<=100;i++)); انجام دادن

echo $i

اگر [ $i -eq 10 ]; سپس

زنگ تفریح

فی

انجام شده

حلقه تودرتو در نمونه های اسکریپت Bashحلقه تودرتو در نمونه های اسکریپت Bash حلقه تودرتو در نمونه های اسکریپت Bashحلقه تودرتو در نمونه های اسکریپت Bash

برای توضیح عمیق و نمایش شکست های حلقه، روش شکستن حلقه while را بررسی کنید.

افکار نهایی

حلقه تو در تو مفهومی ساده و قدرتمند برای درک و پیاده سازی است. امیدواریم این راهنما بتواند مفهوم را توصیف و نشان دهد.

علاقه مند به بیشتر bash راهنمای برنامه نویسی؟ راهنماهای زیر را بررسی کنید.

  • حلقه بی نهایت بش
  • ورودی کاربر اسکریپت Bash
  • آرایه برگردان تابع Bash

محاسبات مبارک!

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-30 23:45:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید