Eksempler på Bash For Loop og While Loop

Som ethvert andet scriptingsprog har Bash også understøttelse af sløjfer.

Sløjfer er gode til at udføre gentagne opgaver. Vi kan bruge til sløjfer og mens sløjfer i vores Bash-scripts.



Bash For Loop

Syntaksen for for loop er:


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

For-loop udføres for hver parameter. Parametrene kan være tal, rækkevidde af tal eller strenge osv.

Eksempel på Bash For Loop

Dette enkle eksempel udskriver tal 1 til 5 ved hjælp af for-sløjfen:


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

Produktion:

1 2 3 4 5

Bash For Loop - Print række numre

Vi kan også definere en række tal, der skal løses gennem:

For eksempel:

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

Produktion:


1 2 3 4 5

Bash Loop Through Strings

Vi kan også bruge for-loop til at gennemgå strengparametre:

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

Produktion:

MON TUE WED THU FRI SAT SUN

Bash For Loop - C-stil

Vi kan også bruge en syntaks i C-stil til at skrive for-loop. For eksempel:

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

Produktion


1 2 3 4 5

For løkke til udskrivning af en liste over filer i det aktuelle bibliotek

For at liste alle filerne i den aktuelle mappe ved hjælp af bash for loop bruger vi:

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

Bash While Loop

Bash understøtter også mens sløjfer. Mens sløjfer udfører et sæt instruktioner, indtil en tilstand vurderes til sand.

Syntaksen for Bash while loop er:

while [condition] do //execute instructions done

Tilstanden evalueres, før instruktioner udføres. Derfor er det nødvendigt at have et middel til at opdatere tilstanden, ellers udføres løkken for evigt.


Eksempel på Bash While Loop

Følgende er en enkel mens sløjfe, der udskriver tal 1 til 5. Sløjfen afsluttes, når antallet er større end 5.

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

Bash C-Style While Loop

Ligesom for loop kan vi også skrive bash while loop på et C-stil-lignende sprog.

For eksempel:

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