Kako uporabljati bash while loop? Primeri in nasveti
Bash je ena izmed najpopularnejših lupin (shelov), ki se uporablja v mnogih operacijskih sistemih, zlasti v Linuxu. Ena izmed osnovnih, vendar zelo pomembnih konstrukcij v Bashu je **while loop**. Z uporabo tega zanke lahko izvedete ponavljajoče naloge, dokler ni izpolnjen določen pogoj. V tem članku bomo raziskali, kako uporabljati **bash while loop**, skozi primere, ki vam bodo pomagali bolje razumeti to pomembno orodje v Bashu.
Kaj je "while" zanka v Bashu?
Zanka "while" je ena izmed osnovnih zank, ki se uporablja v programiranju in skriptiranju, vključno z Bashom. Ko ustvarite "while" zanko, določite pogoj, ki se preverja pred vsakim izvajanjem telesa zanke. Zanka se bo izvajala, dokler je ta pogoj resničen. Ko pogoj postane napačen, zanka preneha delovati in skript preide na naslednjo vrstico kode.
Struktura osnovne zanke "while" v Bashu izgleda takole:
while [pogoj] do # Ukazi, ki se izvedejo, dokler je pogoj resničen done
V zgornjem primeru "pogoj" določa, ali se bo zanka izvajala, in vsebuje enega ali več ukazov, ki se izvedejo v telesu zanke, dokler pogoj ostane resničen.
Primer uporabe while zanke v Bashu
Poglejmo si primer, kjer želimo uporabiti "while" zanko za ponavljanje naloge, dokler ne dosežemo določene vrednosti. Recimo, da želimo, da skript ponovi ukaz za izpis številk od 1 do 5:
#!/bin/bash i=1 while [ $i -le 5 ] do echo "Številka: $i" ((i++)) # Povečaj i za 1 done
V tem primeru imamo spremenljivko "i", ki začne z vrednostjo 1. Zanka bo izvedena, dokler bo vrednost "i" manjša ali enaka 5. Po vsakem izvajanju zanke bo vrednost "i" povečana za 1, kar omogoča, da se zanka ustavi, ko dosežemo 5.
Pomembno: Kako deluje pogoj znotraj "while" zanke?
Pogoj, ki ga uporabljamo znotraj "while" zanke, je lahko katerikoli izraz, ki vrne vrednost "true" ali "false". To je pogosto v obliki primerjave spremenljivk, kot so:
-eq(enako)-ne(ni enako)-lt(manjše)-le(manjše ali enako)-gt(večje)-ge(večje ali enako)
Na primer, v zgoraj omenjenem primeru smo uporabili -le, da preverimo, ali je "i" manjše ali enako 5. Lahko pa bi uporabili tudi druge primerjave, odvisno od tega, kaj želimo doseči.
Primer zanke "while" z uporabo drugih pogojnih stavkov
Poglejmo še en primer, kjer bomo uporabili "while" zanko za iskanje največjega skupnega delitelja (GCD) dveh števil. Predpostavimo, da imamo dve števili in želimo poiskati njihov GCD:
#!/bin/bash
gcd() {
a=$1
b=$2
while [ $b -ne 0 ]
do
temp=$b
b=$((a % b))
a=$temp
done
echo "GCD je: $a"
}
gcd 56 98 # Pokliči funkcijo z dvema številoma
V tem primeru funkcija gcd uporablja "while" zanko za iskanje največjega skupnega delitelja dveh števil. Zanka se izvaja, dokler je drugi parameter (b) različen od nič, kar pomeni, da bo zanka potekala, dokler ne bomo našli GCD-ja. To je odlična uporaba "while" zanke za naloge, ki zahtevajo ponavljanje operacij do izpolnitve določenega pogoja.
Uporaba "while" zanke v interaktivnem načinu
Za interaktivne skripte, kjer želite, da uporabnik vnaša podatke, lahko uporabite "while" zanko skupaj z ukazom read. Na primer, lahko ustvarimo skript, ki ponavlja zahtevo za vnos uporabnika, dokler ne vpiše veljavne vrednosti:
#!/bin/bash
while true
do
read -p "Vnesite svoje ime: " ime
if [ -n "$ime" ]; then
echo "Pozdravljeni, $ime!"
break
else
echo "Prosimo, vnesite veljavno ime."
fi
done
V tem primeru bo zanka ponavljala zahtevo za vnos imena, dokler uporabnik ne vnese ne-praznega imena. Ko bo vneseno veljavno ime, se bo zanka končala s pomočjo ukaza break.
Pomembno: Kako se izogniti neskončnim zankam?
Medtem ko so "while" zanke zelo koristne, lahko včasih povzročijo težave, če niso pravilno uporabljene. Eden od pogostih problemov je **neskončna zanka**, ki se zgodi, če pogoj vedno ostaja resničen. Na primer:
#!/bin/bash while true do echo "To je neskončna zanka!" done
Ta skript bo neskončno izpisoval "To je neskončna zanka!", ker pogoj vedno vrne "true". Da se izognemo takim težavam, se prepričajte, da boste vedno zagotovili, da se bo pogoj enkrat spremenil v "false", sicer boste imeli neskončno zanko, ki bo povzročila visoko obremenitev sistema.
Zaključek
Zanka "while" je izjemno uporabna in fleksibilna v Bashu, saj omogoča ponavljanje nalog, dokler je določen pogoj izpolnjen. S pravilnim razumevanjem, kako deluje, in s pomočjo primerov, ki smo jih preučili, boste lažje pisali učinkovite in optimizirane skripte. Ne pozabite, da vedno preverite pogoje, da se izognete neskončnim zankam in drugim težavam, ki se lahko pojavijo.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!