Bash mens du sløyfe eksempler

Bash mens du sløyfe eksempler
Tre typer løkker brukes i bash -programmering. Mens sløyfe er en av dem. Som andre løkker brukes en stundsløyfe til å gjøre repeterende oppgaver. Denne artikkelen viser hvordan du kan bruke en stundsløyfe i et bashskript ved å bruke forskjellige eksempler.

Syntaks av mens Loop:

mens [tilstand]
gjøre
kommandoer
Ferdig

Start- og sluttblokken av mens Loop er definert av gjøre og Ferdig Nøkkelord i bashskriptet. Avslutningstilstanden er definert ved start av løkken. Åpne en tekstredigerer for å skrive et bash -skript og teste følgende mens sløyfeeksempler.

Eksempel-1: itererer sløyfen i et fast antall ganger

Lag en bash -fil som heter mens1.sh Med følgende innhold. Her vil sløyfen iterere 5 ganger og skrive ut tellerverdien i hver iterasjon.

#!/bin/bash
# Initialiser telleren
n = 1
# Itererer sløyfen i 5 ganger
mens [$ n -LE 5]
gjøre
# Skriv ut verdien til N i hver iterasjon
ekko "Kjør $ N Time"
# Øk verdien av n med 1
((n ++))
Ferdig

Produksjon:
Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-2: Bruke brudduttalelse for betinget avkjørsel

pausen Uttalelse brukes til å gå ut fra løkken tidlig basert på en bestemt tilstand. Lag en bash -fil som heter mens2.sh med følgende kode. Her er sløyfen definert til å iterere 10 ganger, men iterasjonen vil bli stoppet når tellerverdien er 6.

#!/bin/bash
# Initialiser telleren
n = 1
# Itererer sløyfen i 10 ganger
Mens [$ n -LE 10]
gjøre
# Sjekk verdien av n
hvis [$ n == 6]
deretter
ekko "avsluttet"
gå i stykker
fi
# Skriv ut gjeldende verdi på n
ekko "posisjon: $ n"
# Øk verdien av n med 1
((n ++))
Ferdig

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-3: Bruke fortsettelseserklæring for å utelate bestemt trinn

Lag en bash -fil som heter mens3.sh med følgende kode. I dette eksemplet vil sløyfen iterere i 5 ganger, men den vil ikke skrive ut alle 5 stillingene. Når sløyfen itererer for tredje gang, vil fortsettelseserklæringen bli utført, og sløyfen vil gå for neste iterasjon uten å skrive ut teksten til 3. plassering.

#!/bin/bash
# Initialiser telleren
n = 0
# Itererer sløyfen i 5 ganger
mens [$ n -LE 5]
gjøre
# Øk verdien av n med 1
((n ++))
# Sjekk verdien av n
hvis [$ n == 3]
deretter
Fortsette
fi
# Skriv ut gjeldende verdi på n
ekko "posisjon: $ n"
Ferdig

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-4: Les kommandolinjeargumentet med alternativer

Lag en bash -fil som heter mens4.sh med følgende kode. Her brukes sløyfen til å lese kommandolinjeargumentene med alternativer. Skriptet vil skrive ut de formaterte argumentverdiene etter utførelsen hvis tre-argumentverdiene passerer med det gyldige alternativet.

#!/bin/bash
# Les kommandolinjens argumenterverdier med alternativ ved hjelp av loop
mens getopts n: a: e: opt
gjøre
sak "$ opt"
i
n) name = $ optarg ;;
a) adresse = $ optarg ;;
e) e -post = $ optarg ;;
*) ekko "Ugyldig alternativ"
Avslutt 1 ;;
Esac
Ferdig
# Skriv ut argumentverdiene
printf "navn: $ name \ naddress: $ adresse \ nemail: $ e -post \ n"

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-5: Les fillinje for linje

Lag en bash -fil som heter mens5.sh med følgende kode. Her vil det bli gitt et filnavn i det første kommandolinjeargumentet på utførelsestidspunktet. Hvis filen eksisterer, vil innholdet i filen bli skrevet ut linje for linje ved hjelp av loopen; Ellers vil en feilmelding bli skrevet ut.

#!/bin/bash
# Kontroller kommandolinje-argumentverdien er gitt eller ikke
hvis [$# -GT 0]; deretter
# Tildel filnavnet fra Comand-Line argumentverdi
filnavn = $ 1
# Les fillinje for linje
mens du leser linjen; gjøre
# Skriv ut hver linje
ekko $ linje
Ferdig < $filename
ellers
# Skriv ut melding hvis ingen argumenter er gitt
ekko "argumentverdi mangler.""
fi

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-6: Skriv innhold i en fil

Lag en bash -fil som heter mens6.sh med følgende kode. Her vil filnavnet bli hentet fra brukeren som tekstinnholdet skal bli skrevet. Brukeren må skrive Ctrl+D etter å ha skrevet innholdet i filen.

#! /bin/bash
ekko -n "Skriv inn filnavnet for å opprette:"
# Ta filnavnet som vil bli opprettet
Les filnavn
# Les innholdet i filen fra terminalen
mens du leser linjen
gjøre
ekko $ linje >> $ filnavn
Ferdig

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-7: Opprette en uendelig sløyfe

Noen ganger kreves det å erklære en uendelig sløyfe for forskjellige programmeringsformål. Lag en bash -fil som heter mens7.sh og test koden til den uendelige sløyfen. Det er ikke satt noen termineringsbetingelser for sløyfen i dette eksemplet. Denne typen sløyfe kalles en uendelig sløyfe. Her brukes en exit -uttalelse til å slutte fra den uendelige sløyfen. Så denne sløyfen vil bli iterert 10 ganger, og når iterasjonsverdien blir lik 10, vil exit -setningen utføres for å gå ut fra den uendelige sløyfen.

#!/bin/bash
# Initialiser telleren
n = 1
# Erklære en uendelig sløyfe
samtidig som :
gjøre
printf "Gjeldende verdi på n = $ n \ n"
hvis [$ n == 3]
deretter
ekko "bra"
elif [$ n == 5]
deretter
ekko "dårlig"
elif [$ n == 7]
deretter
ekko "stygg"
elif [$ n == 10]
deretter
Avslutt 0
fi
# Øk verdien av n med 1
((n ++))
Ferdig
# Ta filnavnet som vil bli opprettet
Les filnavn
# Les innholdet i filen fra terminalen
mens du leser linjen
gjøre
ekko $ linje >> $ filnavn
Ferdig

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-8: Bruker C-stil mens du er loop

Lag en bash -fil som heter mens8.sh med følgende kode. Her er mens Loop er blitt erklært i et C-stilformat som vil iterere 5 ganger ved å øke tellerverdien med 10.

#!/bin/bash
# Initialiser telleren
n = 5
# Definer mens du er i C-stil
mens ((n <= 50))
gjøre
ekko $ n
# Inkrement Counter med 10
((n = n+10)))
Ferdig

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Konklusjon:

Ulike bruksområder fra mens Loop er blitt forklart i denne opplæringen ved å bruke flere eksempler. Jeg håper bash -brukeren vil kunne bruke denne sløyfen riktig i manuset sitt etter å ha øvd på disse eksemplene.