مانند هر زبان نوشتاری دیگر ، Bash از حلقه ها نیز پشتیبانی می کند.
حلقه ها برای انجام کارهای تکراری عالی هستند. ما می توانیم از حلقه های حلقه و while در اسکریپت های Bash خود استفاده کنیم.
نحو حلقه for این است:
for VARIABLE in PARAM1 PARAM2 PARAM3 do // scope of for loop done
حلقه for برای هر پارامتر اجرا می شود. پارامترها می توانند اعداد ، دامنه اعداد یا رشته ها و غیره باشند.
این مثال ساده با استفاده از حلقه for اعداد را از 1 تا 5 چاپ می کند:
#!/bin/bash for i in 1 2 3 4 5 do echo '$i' done
خروجی:
1 2 3 4 5
همچنین می توان طیف وسیعی از اعداد را برای حلقه تعریف کرد:
مثلا:
for i in {1..5} do echo '$i' done
خروجی:
1 2 3 4 5
ما همچنین می توانیم از حلقه for برای حلقه زدن از طریق پارامترهای رشته استفاده کنیم:
#!/bin/bash for day in MON TUE WED THU FRI SAT SUN do echo '$day' done
خروجی:
MON TUE WED THU FRI SAT SUN
برای نوشتن حلقه 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
شرایط قبل از اجرای هرگونه دستورالعمل ارزیابی می شود. بنابراین ، داشتن ابزاری برای به روزرسانی شرط ضروری است ، در غیر این صورت این حلقه برای همیشه اجرا می شود.
در زیر یک حلقه while ساده وجود دارد که اعداد 1 تا 5 را چاپ می کند. حلقه وقتی عدد بزرگتر از 5 باشد خاتمه می یابد.
#!/bin/bash num=1 while [ $num -le 5 ] do echo '$num' let num++ done
مانند حلقه for ، ما همچنین می توانیم حلقه bash را به زبان C مانند سبک بنویسیم.
مثلا:
#!/bin/bash num=1 while((num <= 5)) do echo $num let num++ done