10 seje og fantastiske Bash Loop-eksempler

10 Seje Og Fantastiske Bash Loop Eksempler



I programmeringssproget er der hovedsageligt tre typer loops (for, while og indtil). Alle tre typer sløjfer er vigtige på forskellige måder. Der er ikke den store forskel mellem while og indtil loops, men for loop fungerer helt anderledes end disse to. Det er derfor, du kan bruge disse loops til at skabe interaktive scripts som bash-bruger.

Så at lære bash-eksempler kan hjælpe dig med at forbedre dine færdigheder i at skabe scripts. Så i denne tutorial vil vi inkludere 10 seje og fantastiske bash loop eksempler, du kan prøve for at forbedre dine scripting færdigheder.







10 seje og fantastiske Bash Loop-eksempler

I dette afsnit vil vi forklare forskellige eksempler og de tilgange, vi har brugt i sløjferne.



Seq-kommando med loop i bash

Du kan bruge kommandoen seq i for-løkken til at oprette talrækken. For eksempel har du et bash-script 'File.sh', der indeholder følgende kode:



#!/bin/bash
til EN i $ ( seq 5 to 25 )
gør
ekko 'antal $A er'
Færdig





Du får følgende resultat efter at have udført scriptet i terminalen:

. / file.sh




Omdøb filer ved hjælp af loop

Ved at bruge et bash-script kan du bruge for-løkkerne til at omdøbe flere filer. For eksempel har du flere .txt-filer og vil tilføje den aktuelle dato med navnet. Så her er et eksempel på et script, du kan bruge:

#!/bin/bash
til EN i $ ( ls * .txt ) ; gør
mv $A ( basenavn $A .txt ) _$ ( dato % d % m % ) .txt
Færdig


Nu kan du køre scriptet, og det vil ændre navnet på alle .txt-filer ved at tilføje den aktuelle dato:

. / MyFile.sh



På samme måde kan du ændre filtypenavnene gennem et enkelt script. Så lad os ændre .txt-udvidelsen til .sh gennem følgende script:

#!/bin/bash
til fil i * .txt; gør
mv -- ' $fil ' '{file%.txt}.sh'
Færdig

Når du har udført scriptet i terminalen, får du .sh i stedet for .txt-filerne:

. / MyFile.sh


Infinite For Loop in Bash

Når der ikke er defineret nogen termineringsbetingelse i løkken, kaldes det en uendelig løkke. I dette eksempel på en Bash-løkke vil vi se på det uendelige for loop i bash. Følgende uendelig for loop er defineret af et dobbelt semikolon ( ; ; ) og indeholder ingen initial-, handlings- eller afslutningsdele.

Nedenstående script fortsætter, indtil du trykker på Ctrl+C eller skriver 'quit' som input. Dette script vil udskrive hvert tal fra 10 til 50, der er givet som input. Ellers vil det udskrive 'nummeret er uden for rækkevidde.'

#!/bin/bash
#uendelig løkke
til ( ( ; ; ) )
gør
ekko 'Indtast et tal mellem 10 og 50'
Læs n
hvis [ $n == 'Afslut' ]
derefter
ekko 'opsagt'
Afslut 0
være
hvis ( ( $n < 10 || $n > halvtreds ) )
derefter
ekko 'Nummeret er uden for rækkevidde'
andet
ekko 'Nummeret er $n '
være
Færdig

Vi gav 45 og 23 gyldige input på ovenstående script. Derefter udskriver vi 2 som input, der fortæller i outputtet, at 'tallet er uden for rækkevidde.' Derefter, for at lukke scriptet, skriver vi quit som input. Her kan du også trykke på Ctrl+C for at afslutte den uendelige løkke.

Three Expression Loop in Bash

Det er kendt fra navnet på tre-udtryksløkken, at den omfatter tre udtryk, også kaldet kontroludtryk. Det første udtryk (EXP1) er initialisereren, det andet udtryk (EXP2) er sløjfetesten eller betingelsen, og det tredje udtryk (EXP3) er det tælleudtryk/trin. Lad os køre en loop med tre udtryk i bash:

#!/bin/bash
til ( ( n = 5 ; n > = 1 ; n-- ) )
gør
ekko 'Bestil $n '
Færdig

Når du kører ovenstående script, får du følgende output.

Løkke med flere betingelser

Vi har brugt indtil-løkken med flere betingelser i følgende bash-løkke-eksempel. I dette script tog vi 'm' og 'n', to variable, hvis værdier er henholdsvis 20 og 10, og holdt grænsen på 15. Her satte vi 'm' og 'n' betingelser sammen i løkken, hvor løkken vil køre indtil værdien af ​​'m' er mindre end grænsen og 'n' er mere end grænsen.

#!/bin/bash
begrænse = femten
m = tyve
n = 10
så længe [ [ $m -lt $grænse || $n -gt $grænse ] ] ;
gør
ekko 'Hvis M = $m derefter N = $n '
( ( m-- ) )
( ( n++ ) )
Færdig

Du kan se, at kørsel af ovenstående script vil køre, indtil værdierne 'm' og 'n' kommer til samme niveau.

Læs fil i Bash

I bash kan du læse indholdet af en fil på flere måder. I dette eksempel på bash loop læser vi filens indhold gennem filnavnet. Vi kan bruge følgende script til at læse filen i bash:

#!/bin/bash
ekko 'Indholdet af den indtastede fil er:'
mens
Læs linje
gør
ekko $line
Færdig < ~Dokumenter / Linuxhint.txt

Efter at have kørt ovenstående script, kan du læse det fulde indhold af den indtastede fil.

Skrivning til en fil

Du kan bruge loops i scriptet til at redigere en fil direkte fra terminalen. For eksempel, hvis vi har en txt-fil 'Example.txt', og vi vil tilføje nogle oplysninger, så kan vi bruge følgende script:


Hvis du kører ovenstående script, vil det bede dig om at indtaste detaljerne:


Når du har indtastet detaljerne, skal du venligst CTRL + D for at gemme filen og CTRL + Z for at afslutte processen.

Break and Continue Statement Loop in Bash

I bash kan du fortsætte dit loop statement efter pausen. Break-sætningen forlader sløjfen og sender derefter kontrol til den næste givne sætning. Iteration nummer to begynder, efter at den aktuelle iteration er sprunget over med den samme fortsæt-sætning.

#!/bin/bash
på en = 16
så længe falsk
gør
( ( på en-- ) )
hvis [ [ $num -ækv 13 ] ]
derefter
Blive ved
elif [ [ $num - det 4 ] ]
derefter
pause
være
ekko 'LinuxHint= $num '
Færdig

I det følgende bash-script kan du se, at når 'num' er lig med 13, springer det resten af ​​loop-kroppen over og springer til næste iteration. På samme måde vil løkken bryde, når 'num' er mindre end eller lig med 4.


Ovenstående script viser, at løkken starter ved 15, pauser ved 13 og fortsætter til 5.

Beregning af et gennemsnit i Bash

Du kan beregne gennemsnittet ved at køre scriptet i en bash-løkke. I denne kan brugeren beregne gennemsnittet af tal inden for et defineret interval. Følgende script beregner gennemsnittet af input fra brugeren.

#!/bin/bash
mærker = '0'
GENNEMSNIT = '0'
SUM = '500'
PÅ EN = '5'
mens rigtigt ; gør
ekko -n 'Indtast dine karakterer eller tryk 'q' for at afbryde' ; Læs mærker;
hvis ( ( ' $mærker ' < '0' ) ) || ( ( ' $mærker ' > '100' ) ) ; derefter
ekko 'Indtast venligst dine karakterer'
elif [ ' $mærker ' == 'q' ] ; derefter
ekko 'gennemsnitlige karakterer er: $AVERAGE %'
pause
andet
SUM =$ [ $SUM + $mærker ]
PÅ EN =$ [ $NUM + 1 ]
GENNEMSNIT =$ [ $SUM / $NUM ]
være
Færdig

Hvis input ikke er inden for området, udskrives en meddelelse om, at 'Indtast venligst dine karakterer.' Når brugeren trykker på 'q' efter at have indtastet alle mærkerne, beregner scriptet det omtrentlige gennemsnit af alle de indtastede tal.

Når ovenstående script køres, vil dit output være noget som dette.

Læs kommandolinjeargumenterne i Bash

I bash kan du læse enkle kommandolinjeargumenter ved hjælp af loops. Scriptet udskriver de formaterede argumentværdier. Vi kører kommandolinjeargumenter i bash ved hjælp af en while-løkke i følgende script. Gennem dette vil du udskrive værdien, der passerer den gyldige indstilling for argumentværdien ved hjælp af en enkelt kommando.

#!/bin/bash
mens getopts N:F:M: OPT
gør
sag ' ${OPT} '
i
N ) navn = ${OPTARG} ;;
F ) Far's navn = ${OPTARG} ;;
M ) modernavn = ${OPTARG} ;;
* ) ekko 'Ugyldig'
Afslut 1 ;;
esac
Færdig
printf 'Navn: $navn \n Far's navn: $fadernavn \n Mors navn: $modernavn \n '

Således kan du udskrive de formaterede argumentværdier til outputtet ved at køre ovenstående script i en bash.

Afslutter

Så dette var den korte information om de 10 seje og fantastiske bash loop eksempler, du kan lære. Vi har brugt forskellige typer loops til nemt at skabe det interaktive script. Desuden forklarede vi også de grundlæggende tilgange, der blev brugt i ovenstående eksempler. Hvis du har dybdegående detaljer om løkkerne i bash, kan du besøge vores officielle hjemmeside for at vide mere.