Soos enige ander skriptaal, het Bash ook ondersteuning vir lusse.
Lusse is ideaal vir herhalende take. Ons kan gebruik maak van lusse en lusse in ons Bash-skrifte.
Die sintaksis van die for-lus is:
for VARIABLE in PARAM1 PARAM2 PARAM3 do // scope of for loop done
Die for-lus sal vir elke parameter uitgevoer word. Die parameters kan getalle, reeks getalle of snare, ens. Wees.
In hierdie eenvoudige voorbeeld word syfers 1 tot 5 met behulp van die for-lus gedruk:
#!/bin/bash for i in 1 2 3 4 5 do echo '$i' done
Uitset:
1 2 3 4 5
Ons kan ook 'n reeks getalle definieer om deur te loop:
Byvoorbeeld:
for i in {1..5} do echo '$i' done
Uitset:
1 2 3 4 5
Ons kan ook die for-lus gebruik om snaarparameters deur te loop:
#!/bin/bash for day in MON TUE WED THU FRI SAT SUN do echo '$day' done
Uitset:
MON TUE WED THU FRI SAT SUN
Ons kan ook 'n C-styl sintaksis gebruik om die for-lus te skryf. Byvoorbeeld:
#!/bin/bash for ((i=1; i<=5; i++)) do echo '$i' done
Uitset
1 2 3 4 5
Om al die lêers in die huidige gids met behulp van die bash for lus te lys, gebruik ons:
#!/bin/bash for fname in ./ do ls -l $fname done
Bash ondersteun ook terwyl lusse. Terwyl lusse 'n stel instruksies uitvoer totdat 'n toestand waar is.
Die sintaksis vir die Bash while-lus is:
while [condition] do //execute instructions done
Die toestand word geëvalueer voordat enige instruksies uitgevoer word. Daarom is dit nodig om die toestand by te werk, anders sal die lus vir ewig uitgevoer word.
Die volgende is 'n eenvoudige while-lus wat getalle 1 tot 5 afdruk. Die lus word beëindig as die getal groter is as 5.
#!/bin/bash num=1 while [ $num -le 5 ] do echo '$num' let num++ done
Soos die for-lus, kan ons ook die bash while-lus in 'n C-stylagtige taal skryf.
Byvoorbeeld:
#!/bin/bash num=1 while((num <= 5)) do echo $num let num++ done