Topp 10 kule og fantastiske eksempler på bash loop

Topp 10 kule og fantastiske eksempler på bash loop
På programmeringsspråket er det hovedsakelig tre typer løkker (for, mens, og til). Alle tre typer løkker er viktige på forskjellige måter. Det er ikke mye forskjell mellom stund og før løkker, men for loop fungerer ganske annerledes enn disse to. Derfor kan du bruke disse løkkene til å lage interaktive skript som bash -bruker.

Så læring av å lære bash kan hjelpe deg med å forbedre ferdighetene dine med å lage skript. Så i denne opplæringen vil vi inkludere 10 kule og fantastiske eksempler.

10 kule og fantastiske eksempler på bash loop

I dette avsnittet vil vi forklare forskjellige eksempler og tilnærmingene vi har brukt i løkkene.

SEQ -kommando med sløyfe i bash

Du kan bruke SEQ -kommandoen i for -loopen for å lage sekvensen av tall. For eksempel har du en bashpt ".SH ”som inneholder følgende kode:

#!/bin/bash
For A In $ (SEQ 5 2 25)
gjøre
ekko "tall på $ a er"
Ferdig

Du får følgende resultat etter å ha utført skriptet i terminalen:

./Fil.sh

Gi nytt navn til filer ved hjelp av loop

Ved hjelp av et bash -skript kan du bruke for -løkker til å gi nytt navn til flere filer. For eksempel har du flere .TXT -filer og vil legge til gjeldende dato med navnet. Så her er eksempelskriptet du kan bruke:

#!/bin/bash
for x i $ (ls *.tekst); gjøre
MV $ x $ (basename $ x .txt) _ $ (dato +%d%m).tekst
Ferdig

Nå kan du kjøre skriptet, og det vil endre navnet på alle .TXT -filer ved å legge til gjeldende dato:

./Myfile.sh


Tilsvarende kan du endre utvidelsene av en fil gjennom et enkelt skript. Så la oss endre .txt -utvidelse til .sh gjennom følgende skript:

#!/bin/bash
for x i *.tekst; gjøre
MV - "$ x" "$ x%.tekst.sh "
Ferdig

Etter å ha utført skriptet i terminalen, vil du få .sh i stedet for .txt -filer:

./Myfile.sh

Uendelig for sløyfe i bash

Når ingen termineringsbetingelser er definert i løkken, kalles det en uendelig sløyfe. I dette eksemplet på en bash loop, vil vi se på det uendelige for loop i bash. Følgende uendelig for sløyfe er definert av en dobbel semikolon (;;) og inneholder ingen innledende, handlinger eller termineringsdeler.

Skriptet nedenfor vil fortsette til du trykker på Ctrl+C eller skriver “Quit” som inndata. Dette skriptet skriver ut hvert tall fra 10 til 50 som er gitt som input. Ellers vil det skrive ut “Nummeret er utenfor rekkevidde.”

#!/bin/bash
#infinitt sløyfe
for ((;;))
gjøre
ekko "Angi et tall mellom 10 til 50"
Les n
hvis [$ n == "avslutter"]
deretter
ekko "avsluttet"
Avslutt 0
fi
if (($ n < 10 || $n > 50))
deretter
ekko "Antallet er utenfor rekkevidde"
ellers
ekko "tallet er $ n"
fi
Ferdig

Vi ga 45 og 23 gyldige innspill på skriptet ovenfor. Etter det skriver vi ut 2 som input som forteller i utgangen at “tallet er utenfor rekkevidde.”Etter det, for å lukke skriptet, skriver vi avslutter som inndata. Her kan du også trykke på Ctrl+C for å avslutte den uendelige sløyfen.

Tre uttrykkssløyfe i bash

Det er kjent fra navnet på treuttrykkssløyfen at den består av tre uttrykk, også kalt kontrolluttrykk. Det første uttrykket (EXP1) er initialisatoren, det andre uttrykket (EXP2) er sløyfetesten eller tilstanden, og det tredje uttrykket (EXP3) er tellende uttrykk/trinn. La oss kjøre en treuttrykkssløyfe i bash:

#!/bin/bash
for ((n = 5; n> = 1; n--))
gjøre
ekko "bok $ n"
Ferdig

Når du kjører skriptet ovenfor, får du følgende utdata.

Sløyfe med flere forhold

Vi har brukt til Loop med flere forhold i det følgende Bash Loop -eksemplet. I dette skriptet tok vi “M” og “N”, to variabler hvis verdier er henholdsvis 20 og 10, og holdt grensen på 15. Her setter vi "M" og "N" -forholdene sammen i løkken, der sløyfen vil løpe til verdien av "m" er mindre enn grensen og "n" er mer enn grensen.

#!/bin/bash
grense = 15
M = 20
n = 10
til [[$ m -lt $ grense || $ n -GT $ grense]];
gjøre
ekko "hvis m = $ m så n = $ n"
((M--))
((n ++))
Ferdig

Du kan se at det å kjøre ovennevnte skript vil kjøre til verdiene til “M” og “N” kommer til samme nivå.

Les fil i bash

I bash kan du lese innholdet i en fil på flere måter. I dette eksemplet på bash loop, vil vi lese filens innhold gjennom filnavnet. Vi kan bruke følgende skript for å lese filen i bash:

#!/bin/bash
Ekko "innhold i den angitte filen er:"
samtidig som
Les linje
gjøre
ekko $ linje
Ferdig <~Documents/Linuxhint.txt

Etter å ha kjørt skriptet ovenfor, kan du lese hele innholdet i den angitte filen.

Skrive til en fil

Du kan bruke løkkene i skriptet til å redigere en fil rett fra terminalen. For eksempel, hvis vi har et TXT -fil "Eksempel.txt, ”og vi vil legge opp litt informasjon, så kan vi bruke følgende skript:


Hvis du kjører skriptet ovenfor, vil det be deg om å legge inn detaljene:


Når du har angitt detaljene, vennligst Ctrl + D for å lagre filen og Ctrl + Z for å fullføre prosessen.

Bryte og fortsett uttalelsesløkken i bash

I bash kan du fortsette din sløyfeoppgave etter pausen. Bruddserklæringen går ut av sløyfen og gir deretter kontroll til neste gitte uttalelse. Iterasjon nummer to begynner etter at den nåværende iterasjonen er hoppet over den samme fortsettelseserklæringen.

#!/bin/bash
Num = 16
inntil falsk
gjøre
((Num--))
if [[$ num -eq 13]]
deretter
Fortsette
elif [[$ num -le 4]]
deretter
gå i stykker
fi
ekko "linuxhint = $ num"
Ferdig

I det følgende bashskriptet kan du se at når "Num" er lik 13, hopper det over resten av sløyfekroppen og hopper til neste iterasjon. Tilsvarende vil sløyfen gå i stykker når “num” er mindre enn eller lik 4.


Ovennevnte skript viser at sløyfen starter klokka 15, bryter klokka 13 og fortsetter til 5.

Beregne et gjennomsnitt i bash

Du kan beregne gjennomsnittet ved å kjøre manuset i en bash loop. I dette kan brukeren beregne gjennomsnittet av tall innen et definert område. Følgende skript beregner gjennomsnittet av gitt inndata fra brukeren.

#!/bin/bash
merker = "0"
Gjennomsnitt = "0"
Sum = "0"
Num = "0"
Mens det er sant; gjøre
ekko -n "Skriv inn merkene dine for å beregne gjennomsnittet eller trykk 'Q' for å abortere/fullføre:"; Les merker;
hvis ["$ markerer" = "q"]; deretter
ekko "Gjennomsnittsmerker er: $ gjennomsnitt"
gå i stykker
Elif ["$ Marks" -lt 50] || ["$ Marks" -GT 100]; deretter
ekko "merker skal være mellom 50 og 100. Vennligst skriv inn merkene dine: "
ellers
Sum = $ (($ sum + $ merker))
Num = $ (($ num + 1))
Gjennomsnitt = $ (($ sum / $ num))
fi
Ferdig

Hvis inngangen ikke er innenfor rekkevidden, skrives det ut en melding om at "Vennligst skriv inn merkene dine.”Når brukeren trykker på“ Q ”etter å ha lagt inn alle merkene, beregner skriptet det omtrentlige gjennomsnittet av alle angitte tallene.

Når skriptet ovenfor kjøres, vil utdataene være noe slikt.

Les kommandolinjeargumentene i bash

I bash kan du lese enkeltkommandolinjeargumenter ved hjelp av løkker. Skriptet skriver ut de formaterte argumentverdiene. Vi kjører kommandolinjeargumenter i bash ved hjelp av en stund loop i følgende skript. Gjennom dette vil du skrive ut verdien som passerer argumentverdien som gyldig alternativ ved hjelp av en enkelt kommando.

#!/bin/bash
Mens getopts n: f: m: opt
gjøre
sak "$ opt" i
N) name = $ optarg ;;
F) Fathername = $ Optarg ;;
M) MODERNAME = $ Optarg ;;
*) ekko "ugyldig"
Avslutt 1 ;;
Esac
Ferdig
printf "navn: $ name \ nfather navn: $ fathername \ nmother name: $ morname \ n"


Dermed kan du skrive ut de formaterte argumentverdiene til utdataene ved å kjøre skriptet ovenfor i en bash.

Innpakning

Så dette var den korte informasjonen om de 10 kule og fantastiske eksempler på bash -sløyfe du kan lære. Vi har brukt forskjellige typer løkker for å lage det interaktive skriptet enkelt. Videre forklarte vi også de grunnleggende tilnærmingene som ble brukt i eksemplene ovenfor. Hvis du har dyptgående detaljer om løkkene i bash, kan du gå til vårt offisielle nettsted for å vite mer.