Siden BASH er et kommandolinjespråk, får vi en ganske funksjonsrik erfaring for å utnytte programmeringsferdighetene til å utføre oppgaver i terminalen. Vi kan bruke looper og betingede utsagn i BASH-skript for å utføre noen repeterende og vanskelige problemer på en enkel programmatisk måte. I denne artikkelen skal vi fokusere på for løkke i BASH-skript.
Avhengig av brukstilfellet og problemet den prøver å automatisere, er det et par måter å bruke loops på.
- Enkel for loop
- Rekkeviddebasert for loop
- Array-iterasjon for løkker
- C-stil for løkker
- Uendelig for loop
Enkel for loop
For å utføre en for-løkke kan vi skrive følgende syntaks:
#!/bin/bash for n in a b c; do echo $n done>
- I den første iterasjonen,
n>tar verdien a, og skriptet skriver ut a. - I den andre iterasjonen,
n>tar verdien b, og skriptet skriver ut b. - I den tredje iterasjonen,
n>tar verdien c, og skriptet skriver ut c.

Kommandoen ovenfor vil iterere over de angitte elementene etter i nøkkelord ett etter ett. Elementene kan være tall, strenger eller andre former for data.
Rekkeviddebasert for loop
Vi kan bruke rekkeviddebasert for løkker. I denne typen loop kan vi spesifisere tallet som skal starte, stoppe og øke ved hver iterasjon (valgfritt) i setningen. Det er to måter du kan gjøre dette på, dvs. ved å nevne øknings-/dekrementeringsverdien og ved å øke med én som standard. Syntaksen ser slik ut:
understreng i java
#!/bin/bash for n in {1..5}; do echo $n done> 
I koden ovenfor bruker vi {} for å spesifisere et tallområde. Inne i de krøllete klammeparentesene spesifiserer vi startpunktet etterfulgt av to prikker og et endepunkt. Som standard øker den med én. Derfor skriver vi ut 5 tall fra 1 til 5 begge inkludert.
#!/bin/bash for n in {1..5..2}; do echo $n done> 
sove i javascript
Her kan vi se at løkken økte med 2 enheter som nevnt i krøllete seler. Dermed gjør dette arbeidet med tall veldig enkelt og praktisk. Dette kan også brukes med alfabetiske tegn.
MERK: Vi kan ikke bruke variabler inne i de krøllede klammeparentesene, så vi må hardkode verdiene. For å bruke variablene ser vi den tradisjonelle C-stilen for loops i de neste avsnittene.
Array-iterasjon for løkker
Vi kan enkelt iterere over arrays i bash ved å bruke for looper med en spesifikk syntaks. Vi kan bruke spesialvariablene i BASH, dvs. @ for å få tilgang til alle elementene i matrisen. La oss se på koden:
#!/bin/bash s=('football' 'cricket' 'hockey') for n in ${s[@]}; do echo $n done> 
Vi kan iterere over array-elementene ved å bruke @-operatoren som henter alle elementene i arrayen. Ved å bruke for-løkken itererer vi over dem én etter én. Vi bruker variabelen ${variable_name[@]} hvor de krøllete klammeparentesene her utvider verdien av variabelen s her, som er en rekke strenger. Ved å bruke [@]-operatoren får vi tilgang til alle elementene og itererer dermed over dem i for en loop. Her, den n er iteratoren, derfor kan vi skrive ut verdien eller utføre den nødvendige behandlingen på den.
C-stil for løkker
Som sagt tidligere, må vi bruke variablene inne i for-løkkene for å iterere over en rekke elementer. Og dermed spiller den C-stilte for loops en veldig viktig rolle. La oss se hvordan vi bruker dem.
java-løkker
#!/bin/bash n=7 for (( i=1 ; i<=$n ; i++ )); do echo $i done>

Som vi kan se, kan vi dynamisk bruke verdien av rekkevidden av sluttbetingelser. Husk at mellomrommene mellom de doble klammeparentesene kan være tilsiktet og er en del av syntaksen. C-stilt for løkker er løkkene som har 3 deler, initialiserende iterator, inkrementor/decrementer og sluttbetingelsen.
I syntaksen ovenfor har vi initialisert loop-iteratoren/telleren til 1 som kan være hva som helst etter valg. Den andre delen er sluttbetingelsen, her har vi brukt variabelen n som initialiseres før for-løkken og dermed bruker vi det enkle $ operatør for å få verdien av variabelen. Til slutt har vi inkrementoren/dekrementeren som endrer iteratoren/telleren til en verdi som kan være alt, men i eksemplet har vi brukt unæroperatoren (++) å øke verdien med en som tilsvarer i=i+1 . Dermed kan vi bruke utsagn som i+=2, i–,++i, og så videre.
Uendelig for loop
Vi bruker ikke dette ofte, men det er noen ganger nyttig å få visse ting til å fungere. Syntaksen er ganske enkel og ligner på C-stilen for loops.
#!/bin/bash n=4 for (( ; ; )); do if [ $n -eq 9 ];then break fi echo $n ((n=n+1)) done>
Løkken starter medn>satt til 4. Den økern>med 1 ved hver iterasjon og skriver ut verdien avn>førn>blir lik 9. Nårn>når 9, denbreak>setningen utføres, og loopen avsluttes. Skriptet stopper etter å ha skrevet ut tallene 4 til 8.

Som vi kan se har 'for'-løkken ingen betingelser og denne går for alltid, men vi har en tilstandserklæring for å sjekke at den ikke fortsetter for alltid. Vi bruker break-setningen inne i if-setningen for å komme ut av loopen og slutte å iterere med iteratoren. Vi har brukt inkrementoren til å øke variabelen i løkken ellers er løkken uendelig. Selvfølgelig trenger vi litt logikk for å bryte ut av loopen, og det er derfor vi trenger å bruke if condition-setningen.