برای مثال حلقه و حلقه Bash

مانند هر زبان نوشتاری دیگر ، Bash از حلقه ها نیز پشتیبانی می کند.

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



Bash For Loop

نحو حلقه for این است:


for VARIABLE in PARAM1 PARAM2 PARAM3 do // scope of for loop done

حلقه for برای هر پارامتر اجرا می شود. پارامترها می توانند اعداد ، دامنه اعداد یا رشته ها و غیره باشند.

Bash برای حلقه مثال

این مثال ساده با استفاده از حلقه for اعداد را از 1 تا 5 چاپ می کند:


#!/bin/bash for i in 1 2 3 4 5 do echo '$i' done

خروجی:

1 2 3 4 5

Bash For Loop - محدوده چاپ اعداد

همچنین می توان طیف وسیعی از اعداد را برای حلقه تعریف کرد:

مثلا:

for i in {1..5} do echo '$i' done

خروجی:


1 2 3 4 5

حلقه Bash از طریق رشته ها

ما همچنین می توانیم از حلقه for برای حلقه زدن از طریق پارامترهای رشته استفاده کنیم:

#!/bin/bash for day in MON TUE WED THU FRI SAT SUN do echo '$day' done

خروجی:

MON TUE WED THU FRI SAT SUN

Bash For Loop - سبک C

برای نوشتن حلقه for نیز می توانیم از نحوی به سبک C استفاده کنیم. مثلا:

#!/bin/bash for ((i=1; i<=5; i++)) do echo '$i' done

خروجی


1 2 3 4 5

برای حلقه برای چاپ لیست پرونده ها در فهرست فعلی

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

#!/bin/bash for fname in ./ do ls -l $fname done

بش حلقه

Bash از حلقه های while نیز پشتیبانی می کند. در حالی که حلقه ها مجموعه ای از دستورالعمل ها را اجرا می کنند تا زمانی که یک شرط درست ارزیابی شود

نحو حلقه Bash while این است:

while [condition] do //execute instructions done

شرایط قبل از اجرای هرگونه دستورالعمل ارزیابی می شود. بنابراین ، داشتن ابزاری برای به روزرسانی شرط ضروری است ، در غیر این صورت این حلقه برای همیشه اجرا می شود.


Bash حلقه مثال

در زیر یک حلقه while ساده وجود دارد که اعداد 1 تا 5 را چاپ می کند. حلقه وقتی عدد بزرگتر از 5 باشد خاتمه می یابد.

#!/bin/bash num=1 while [ $num -le 5 ] do echo '$num' let num++ done

Bash C-Style while Loop

مانند حلقه for ، ما همچنین می توانیم حلقه bash را به زبان C مانند سبک بنویسیم.

مثلا:

#!/bin/bash num=1 while((num <= 5)) do echo $num let num++ done