چگونه برای نوشتن BASH "برای" حلقه

نحوه استفاده از حلقه BASH برای حلقه در اسکریپت های پوسته

BASH (که برای Bourne Again Shell نامیده می شود) یک زبان برنامه نویسی است که توسط اکثر سیستم عامل های لینوکس و یونیکس استفاده می شود.

شما می توانید دستورات BASH را در یک پنجره ترمینال یکبار دیگر اجرا کنید و یا می توانید دستورات یک فایل متنی را برای تولید اسکریپت پوسته اضافه کنید.

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

زبان های اسکریپت مانند BASH دارای ساختارهای برنامه نویسی مشابه به عنوان زبان های دیگر هستند. به عنوان مثال، شما می توانید از پارامترهای واردات برای ورودی از صفحه کلید استفاده کنید و آنها را به عنوان متغیر ذخیره کنید. سپس می توانید اسکریپت را برای انجام یک اقدام خاص بر اساس مقدار پارامترهای ورودی دریافت کنید .

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

تعدادی از راه های برای تکرار کد (همچنین به عنوان حلقه ها) وجود دارد. در این راهنما، شما نشان داده خواهد شد که چطور نوشتن حلقه "برای" داشته باشید.

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

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

قبل از شروع کار

قبل از اینکه با نمونه هایی از حلقه شروع کنید، باید یک پنجره ترمینال را باز کنید و این مراحل را دنبال کنید:

  1. اسکریپت mkdir را وارد کنید (برای اطلاعات بیشتر در مورد mkdir اینجا کلیک کنید )
  2. اسکریپت های cd را وارد کنید (این دایرکتوری را به اسکریپت تغییر می دهد )
  3. nano examplen.sh را وارد کنید (جایی که مثال n شما در حال کار هستید)
  4. اسکریپت را وارد کنید
  5. CTRL + O را فشار دهید تا ذخیره شود و CTRL + X برای خروج
  6. run bash examplen.sh (دوباره با مثال N که در حال کار با آن هستید)

چطور از طریق فهرست

#! / bin / bash
برای تعداد در 1 2 3 4 5
انجام دادن
echo $ تعداد
انجام شده
خروج 0

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

در یک حلقه BASH برای حلقه، اظهارات بین انجام شده و انجام شده یکبار برای هر مورد در لیست انجام می شود.

در مثال فوق، لیست همه چیزهایی است که بعد از کلمه (یعنی 1 2 3 4 5) می آید.

هر بار که حلقه تکرار می شود، مقدار بعدی در لیست به متغیر مشخص شده پس از کلمه "for" وارد می شود . در حلقه فوق متغیر شماره نامیده می شود.

بیانیه اکو برای نمایش اطلاعات روی صفحه نمایش استفاده می شود.

بنابراین، این مثال شماره های 1 تا 5 را می گیرد و آنها را به صورت یک به یک به صفحه نمایش می دهد:

چگونه بین یک نقطه شروع و پایان بیندازیم

مشکل با مثال فوق این است که اگر می خواهید یک لیست بزرگتر را پردازش کنید (مثلا 1 تا 500)، طول می کشد تا همه اعداد را در اولویت قرار دهید.

این به ما مثال دوم می دهد که نشان می دهد چگونه یک نقطه شروع و پایان را مشخص می کند:

#! / bin / bash
برای شماره در {1..10}
انجام دادن
echo "$ number"
انجام شده
خروج 0

قوانین اساسا یکسان هستند. مقادیر بعد از کلمه " in" ، لیست را برای تکرار از طریق تشکیل می دهند و هر مقدار در لیست در متغیر (یعنی عدد) قرار می گیرد و هر بار که حلقه تکرار می شود، اظهارات بین انجام و انجام انجام می شود.

تفاوت اصلی این است که لیست تشکیل شده است. براکت های curly {} اساسا یک محدوده را نشان می دهند، و محدوده، در این مورد، 1 تا 10 (دو نقطه جدا از شروع و پایان محدوده).

بنابراین این مثال، از طریق هر شماره بین 1 تا 10 اجرا می شود و شماره را بر روی صفحه نمایش به صورت زیر نمایش می دهد:

همان حلقه می تواند مانند این نوشته شده باشد، با نحو مشابه با مثال اول:

برای شماره در 1 2 3 4 5 6 7 8 9 10

چگونه می توان تعداد عددی را در یک ردیف گذراند

مثال قبلی نشان داد که چطور بین نقطه شروع و پایان به حلقه بپردازیم، بنابراین اکنون به چگونگی پریدن اعداد در محدوده نگاه می کنیم.

تصور کنید که میخواهید بین 0 تا 100 حلقه بزنید اما فقط تعداد هر دهم را نشان دهید. اسکریپت زیر نشان می دهد که چگونه این کار را انجام دهید:

#! / bin / bash
برای تعداد در {0..100..10}
انجام دادن
echo "$ number"
انجام شده
خروج 0

قوانین اساسا یکسان هستند. یک لیست، متغیر و مجموعه ای از اظهارات بین انجام و انجام شده وجود دارد . این بار این لیست به نظر می رسد: {0..100..10}.

شماره اول 0 است و شماره پایان 100 است. شماره سوم (10) تعداد آیتم ها در لیست است که از آن عبور می کند.

مثال بالا، بنابراین خروجی زیر را نمایش می دهد:

بیشتر سنتی به دنبال حلقه

روش BASH نوشتن برای حلقه ها کمی عجیب است در مقایسه با دیگر زبان های برنامه نویسی.

با این حال، می توانید یک حلقه را به سبک مشابه زبان برنامه نویسی C بنویسید، مانند این:

#! / bin / bash
برای ((تعداد = 1، تعداد <100؛ تعداد ++))
{
اگر (($ number = 5 == 0))
سپس
echo "تعداد عدد 5 قابل تقسیم است
فی
}
خروج 0

حلقه با تنظیم شماره متغیر به 1 (تعداد = 1 ) شروع می شود. حلقه آن را تکرار می کند در حالی که مقدار یک عدد کمتر از 100 ( تعداد <100 ) است. مقدار تغییر تعداد با اضافه کردن 1 به آن پس از هر تکرار ( تعداد ++ ).

همه چیز بین تسمه های در حال شکل گیری از طریق هر تکرار حلقه انجام می شود.

بیت بین پرانتز مقدار یک عدد را بررسی می کند، آن را با 5 تقسیم می کند و باقی مانده را به 0 مقایسه می کند. اگر باقی مانده 0 باشد، تعداد آن به 5 تقسیم می شود و سپس بر روی صفحه نمایش داده می شود.

مثلا:

اگر شما می خواهید اندازه گام تکرار را تغییر دهید، می توانید شماره ++ بخش را به عنوان number = number + 2 ، number = number + 5 یا number = number + 10 و غیره تغییر دهید.

این را می توان به تعداد + = 2 یا تعداد + = 5 کاهش داد .

یک مثال کاربردی

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

مثال زیر نشان می دهد که چگونه برای تبدیل فایل های صوتی از MP3 به WAV :

#! / bin / bash

لیست در این مثال هر فایل با فرمت .MP3 در پوشه جاری است و متغیر یک فایل است .

دستور mpg فایل MP3 را به WAV تبدیل می کند. با این حال، شما احتمالا باید این را با استفاده از مدیریت بسته خود نصب کنید.