10 kule og fantastiske Bash Loop-eksempler

10 Kule Og Fantastiske Bash Loop Eksempler



I programmeringsspråket er det hovedsakelig tre typer løkker (for, while, og til). Alle tre typer løkker er viktige på forskjellige måter. Det er ikke så stor forskjell mellom while- og til-løkkene, men for loop fungerer ganske annerledes enn disse to. Det er derfor du kan bruke disse løkkene til å lage interaktive skript som bash-bruker.

Så å lære bash-eksempler kan hjelpe deg med å forbedre ferdighetene dine i å lage skript. Så i denne opplæringen vil vi inkludere 10 kule og fantastiske bash loop-eksempler du kan prøve for å forbedre skriptferdighetene dine.







10 kule og fantastiske Bash Loop-eksempler

I denne delen vil vi forklare ulike eksempler og tilnærmingene vi har brukt i loopene.



Seq-kommando med loop i bash

Du kan bruke seq-kommandoen i for-løkken for å lage tallsekvensen. For eksempel har du et bash-skript 'File.sh' som inneholder følgende kode:



#!/bin/bash
til EN i $ ( seq 5 to 25 )
gjøre
ekko 'antall $A er'
ferdig





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

. / file.sh




Gi nytt navn til filer ved hjelp av loop

Ved å bruke et bash-skript kan du bruke for-løkkene til å gi nytt navn til flere filer. Du har for eksempel flere .txt-filer og ønsker å legge til gjeldende dato med navnet. Så her er eksempelskriptet du kan bruke:

#!/bin/bash
til EN i $ ( ls * .tekst ) ; gjøre
mv $A ( basenavn $A .tekst ) _$ ( 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



På samme måte kan du endre filtypene gjennom et enkelt skript. Så la oss endre .txt-utvidelsen til .sh gjennom følgende skript:

#!/bin/bash
til fil i * .tekst; gjøre
mv -- ' $fil ' '{file%.txt}.sh'
ferdig

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

. / MyFile.sh


Infinite For Loop in Bash

Når ingen termineringsbetingelse er definert i sløyfen, kalles det en uendelig sløyfe. I dette eksempelet på en Bash-løkke vil vi se på uendelig for loop i bash. Følgende uendelig for loop er definert av et dobbelt semikolon ( ; ; ) og inneholder ingen initial-, handlings- eller avslutningsdeler.

Skriptet nedenfor vil fortsette til du trykker Ctrl+C eller skriver 'avslutt' som input. Dette skriptet vil skrive ut hvert tall fra 10 til 50 som er gitt som input. Ellers vil det skrives ut 'nummeret er utenfor rekkevidde.'

#!/bin/bash
#uendelig løkke
til ( ( ; ; ) )
gjøre
ekko 'Skriv inn et tall mellom 10 og 50'
lese n
hvis [ $n == 'slutte' ]
deretter
ekko 'avsluttet'
exit 0
være
hvis ( ( $n < 10 || $n > femti ) )
deretter
ekko 'Tallet er utenfor rekkevidde'
ellers
ekko 'Nummeret er $n '
være
ferdig

Vi ga 45 og 23 gyldige inndata 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 quit som input. Her kan du også trykke Ctrl+C for å avslutte den uendelige løkken.

Three Expression Loop in Bash

Det er kjent fra navnet på tre-uttrykksløkken at den består av tre uttrykk, også kalt kontrolluttrykk. Det første uttrykket (EXP1) er initialisereren, det andre uttrykket (EXP2) er looptesten eller betingelsen, og det tredje uttrykket (EXP3) er telleuttrykket/trinnet. La oss kjøre en tre-uttrykksløkke i bash:

#!/bin/bash
til ( ( n = 5 ; n > = 1 ; n-- ) )
gjøre
ekko 'Bok $n '
ferdig

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

Løkke med flere betingelser

Vi har brukt inntil-løkken med flere betingelser i følgende bash-løkkeeksempel. I dette skriptet tok vi 'm' og 'n', to variabler hvis verdier er henholdsvis 20 og 10, og holdt grensen på 15. Her satte vi 'm' og 'n' betingelser sammen i loopen, der sløyfen vil løpe til verdien av 'm' er mindre enn grensen og 'n' er mer enn grensen.

#!/bin/bash
grense = femten
m = tjue
n = 10
før [ [ $m -lt $grense || $n -gt $grense ] ] ;
gjøre
ekko 'Hvis M = $m så N = $n '
( ( m-- ) )
( ( n++ ) )
ferdig

Du kan se at å kjøre skriptet ovenfor vil kjøre til verdiene for '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 av bash loop vil vi lese filens innhold gjennom filnavnet. Vi kan bruke følgende skript for å lese filen i bash:

#!/bin/bash
ekko 'Innholdet i den angitte filen er:'
samtidig som
lese linje
gjøre
ekko $line
ferdig < ~Dokumenter / Linuxhint.txt

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

Skrive til en fil

Du kan bruke loopene i skriptet til å redigere en fil rett fra terminalen. For eksempel, hvis vi har en txt-fil «Example.txt» og vi ønsker å legge til litt informasjon, kan vi bruke følgende skript:


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


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

Bryt og fortsett Statement Loop i Bash

I bash kan du fortsette loop-uttalelsen etter pausen. Break-setningen går ut av loopen og sender deretter kontrollen til neste gitte setning. Iterasjon nummer to begynner etter at gjeldende iterasjon er hoppet over med den samme fortsettelse-setningen.

#!/bin/bash
på en = 16
før falsk
gjøre
( ( på en-- ) )
hvis [ [ $num -eq 1. 3 ] ]
deretter
Fortsette
elif [ [ $num - den 4 ] ]
deretter
gå i stykker
være
ekko 'LinuxHint= $num '
ferdig

I det følgende bash-skriptet kan du se at når 'num' er lik 13, hopper det over resten av løkken og hopper til neste iterasjon. På samme måte vil sløyfen brytes når 'num' er mindre enn eller lik 4.


Skriptet ovenfor viser at loopen starter ved 15, bryter ved 13 og fortsetter til 5.

Beregner et gjennomsnitt i Bash

Du kan beregne gjennomsnittet ved å kjøre skriptet i en bash-løkke. I denne kan brukeren beregne gjennomsnittet av tall innenfor et definert område. Følgende skript beregner gjennomsnittet av inndata fra brukeren.

#!/bin/bash
merker = '0'
GJENNOMSNITT = '0'
SUM = '500'
PÅ EN = '5'
samtidig som ekte ; gjøre
ekko -n 'Skriv inn merkene dine eller trykk 'q' for å avbryte' ; lese merker;
hvis ( ( ' $merker ' < '0' ) ) || ( ( ' $merker ' > '100' ) ) ; deretter
ekko 'Vennligst skriv inn karakterene dine'
elif [ ' $merker ' == 'q' ] ; deretter
ekko 'gjennomsnittskarakterer er: $AVERAGE %'
gå i stykker
ellers
SUM =$ [ $SUM + $merker ]
PÅ EN =$ [ $NUM + 1 ]
GJENNOMSNITT =$ [ $SUM / $NUM ]
være
ferdig

Hvis inndata ikke er innenfor området, skrives det ut en melding om at 'Vennligst skriv inn merkene dine.' Når brukeren trykker 'q' etter å ha skrevet inn alle merkene, beregner skriptet det omtrentlige gjennomsnittet av alle tallene som er lagt inn.

Når skriptet ovenfor kjøres, vil utdataene dine være noe sånt som dette.

Les kommandolinjeargumentene i Bash

I bash kan du lese enkle kommandolinjeargumenter ved å bruke looper. Skriptet skriver ut de formaterte argumentverdiene. Vi kjører kommandolinjeargumenter i bash ved å bruke en while-løkke i følgende skript. Gjennom dette vil du skrive ut verdien som passerer argumentverdien gyldig alternativ ved hjelp av en enkelt kommando.

#!/bin/bash
samtidig som getopts N:F:M: OPT
gjøre
sak ' ${OPT} '
i
N ) Navn = ${OPTARG} ;;
F ) farsnavn = ${OPTARG} ;;
M ) morsnavn = ${OPTARG} ;;
* ) ekko 'Ugyldig'
exit 1 ;;
esac
ferdig
printf 'Navn: $navn \n Farsnavn: $farnavn \n Mors navn: $mornavn \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 bash loop-eksemplene du kan lære. Vi har brukt forskjellige typer looper for å lage det interaktive skriptet enkelt. Dessuten forklarte vi også de grunnleggende tilnærmingene som ble brukt i eksemplene ovenfor. Hvis du har detaljerte detaljer om løkkene i bash, vennligst besøk vår offisielle nettside for å vite mer.