Primjeri Bash For Loop i While Loop

Kao i bilo koji drugi skriptni jezik, Bash također ima podršku za petlje.

Petlje su izvrsne za obavljanje ponavljajućih zadataka. Možemo koristiti for petlje i while petlje u našim Bash skriptama.

Bash For Loop

Sintaksa for petlje je:

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

Petlja for izvršit će se za svaki parametar. Parametri mogu biti brojevi, raspon brojeva ili nizovi itd.

Primjer Bash For Loop

Ovaj jednostavni primjer ispisuje brojeve od 1 do 5 pomoću petlje for:

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

Izlaz:



1 2 3 4 5

Bash For Loop - Ispis raspona brojeva

Također možemo definirati niz brojeva kroz koje ćemo se petljati:

Na primjer:

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

Izlaz:

1 2 3 4 5

Bash petlja kroz žice

Petlju for također možemo koristiti za petlju kroz parametre niza:

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

Izlaz:

MON TUE WED THU FRI SAT SUN

Bash For Loop - C stil

Za pisanje for petlje također možemo koristiti sintaksu u stilu C. Na primjer:

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

Izlaz

1 2 3 4 5

Za petlju za ispis popisa datoteka u trenutnom direktoriju

Da bismo popisali sve datoteke u trenutnom direktoriju pomoću petlje bash for, koristimo:

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

Baš dok petlja

Bash također podržavaju petlje. Dok petlje izvršavaju skup uputa sve dok uvjet ne procijeni na istinito.

Sintaksa za petlju Bash while je:

while [condition] do //execute instructions done

Stanje se procjenjuje prije izvršavanja bilo kakvih uputa. Stoga je potrebno imati sredstvo za ažuriranje stanja, inače će se petlja izvršiti zauvijek.

Primjer basha dok petlja

Slijedi jednostavna while petlja koja ispisuje brojeve od 1 do 5. Petlja se prekida kada je broj veći od 5.

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

Bash C-stil dok petlja

Kao i petlja for, također možemo napisati bash while petlju u jeziku poput C-a.

Na primjer:

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