Kaip ir bet kuri kita scenarijų kalba, „Bash“ taip pat palaiko kilpas.
Kilpos puikiai tinka atlikti pasikartojančias užduotis. Mes galime naudoti „Bash“ scenarijų kilpas ir „loop“.
„For“ ciklo sintaksė yra:
for VARIABLE in PARAM1 PARAM2 PARAM3 do // scope of for loop done
„For“ kilpa bus vykdoma kiekvienam parametrui. Parametrai gali būti skaičiai, skaičių diapazonas ar eilutės ir kt.
Šis paprastas pavyzdys spausdina skaičius nuo 1 iki 5 naudodamas „for loop“:
#!/bin/bash for i in 1 2 3 4 5 do echo '$i' done
Išvestis:
1 2 3 4 5
Mes taip pat galime apibrėžti skaičių diapazoną, per kurį reikia pereiti:
Pavyzdžiui:
for i in {1..5} do echo '$i' done
Išvestis:
1 2 3 4 5
Mes taip pat galime naudoti „for loop“, norėdami peržvelgti eilutės parametrus:
#!/bin/bash for day in MON TUE WED THU FRI SAT SUN do echo '$day' done
Išvestis:
MON TUE WED THU FRI SAT SUN
Mes taip pat galime naudoti C stiliaus sintaksę, kad parašytume for ciklą. Pavyzdžiui:
#!/bin/bash for ((i=1; i<=5; i++)) do echo '$i' done
Rezultatas
1 2 3 4 5
Norėdami išvardyti visus failus dabartiniame kataloge naudodami „bash for loop“, mes naudojame:
#!/bin/bash for fname in ./ do ls -l $fname done
Bashas taip pat palaiko kilpas. Nors kilpos vykdo instrukcijų rinkinį, kol sąlyga bus įvertinta.
„Bash while loop“ sintaksė yra:
while [condition] do //execute instructions done
Sąlyga įvertinama prieš vykdant bet kokius nurodymus. Todėl būtina turėti galimybę atnaujinti sąlygą, kitaip kilpa bus vykdoma amžinai.
Toliau pateikiama paprasta „loop“, kuri spausdina skaičius nuo 1 iki 5. Kilpa nutraukiama, kai skaičius yra didesnis nei 5.
#!/bin/bash num=1 while [ $num -le 5 ] do echo '$num' let num++ done
Kaip ir „for loop“, taip pat „bash“, o „loop“, taip pat galime parašyti C stiliaus kalba.
Pavyzdžiui:
#!/bin/bash num=1 while((num <= 5)) do echo $num let num++ done