Lausekkeiden silmukoita Shell-komentosarjassa: Bash-ohjelmoinnissa voidaan käyttää yhteensä 3 silmukkalauseketta
kuplalajittelu
Sisällysluettelo
- `while`-lause Shell Scriptissa Linuxissa
- 'for'-lauseke Shell Scriptissa Linuxissa
- 'kunnes' -lauseke Shell Scriptissa Linuxissa
- Esimerkkejä silmukkalausekkeista
Silmukkakäskyjen kulun muuttamiseksi käytetään kahta komentoa:
- tauko
- jatkaa
Niiden kuvaukset ja syntaksi ovat seuraavat:
`while`-lause Shell Scriptissa Linuxissa
Tässä komento arvioidaan ja tuloksena olevan silmukan perusteella suoritetaan, jos komento nostetaan arvoon false, silmukka päättyy että.
#/bin/bash while do done>
`While`-silmukan toteutus Shell-skriptissä.
Ensin luomme tiedoston tekstieditorilla Linuxissa. Tässä tapauksessa käytämme vim-editoria.
vim looping.sh>
Voit korvata looping.sh:n haluamallasi nimellä.
Sitten teemme skriptimme suoritettavan käyttämällä chmod-komentoa Linuxissa.
chmod +x looping.sh>
#/bin/bash
a = 0
# Se on pienempi kuin operaattori
#Iteroi silmukkaa, kunnes arvo on alle 10
kun taas [ $a -lt 10 ]
tehdä
# Tulosta arvot
kaiku $a
# lisää arvoa
a=`laus $a + 1`
tehty
Lähtö:

Vaikka Loop Linuxissa
Selitys:
-
#/bin/bash>: Määrittää, että komentosarja tulee tulkita Bash-kuoren avulla. -
a=0>: Alustaa muuttujana>arvolla 0. -
while [ $a -lt 10 ]>: Aloittaa while-silmukan, joka jatkuu niin kauan kuin arvoa>on alle 10. -
do>: Merkitsee silmukan rungon alun. -
echo $a>: Tulostaa nykyisen arvona>konsoli. -
a=>lauseke $a + 1 : Kasvattaa arvoaa>kirjoittaja 1. Theexpr>komentoa käytetään aritmeettisiin lausekkeisiin. -
done>: Merkitsee silmukan lopun.
'for'-lauseke Shell Scriptissa Linuxissa
For-silmukka toimii kohdeluetteloissa. Se toistaa joukon komentoja luettelon jokaiselle kohteelle.
Tässä var on muuttujan nimi ja sana1 - sanaN ovat merkkijonoja, jotka on erotettu välilyönneillä (sanoilla). Joka kerta kun for-silmukka suoritetaan, muuttujan var arvoksi asetetaan sanaluettelon seuraava sana, sana1 sana N.
Syntaksi:
#/bin/bash for in do done>
`for` Loopin toteutus `break`-lauseella Shell Scriptissa.
Ensin luomme tiedoston tekstieditorilla Linuxissa. Tässä tapauksessa käytämme vim-editoria.
vim for.sh>
Voit korvata for.sh:n haluamallasi nimellä.
Sitten teemme skriptimme suoritettavan käyttämällä chmod-komentoa Linuxissa.
chmod +x for.sh>
#/bin/bash
#For-silmukan alku
a in 1 2 3 4 5 6 7 8 9 10
tehdä# jos a on yhtä suuri kuin 5, katkaise silmukka
jos [ $a == 5 ]
sitten
tauko
olla# Tulosta arvo
echo Iteraatio ei $a
tehty
Lähtö:

Katkaise lauseke silmukalle linuxissa
Selitys:
#/bin/bash>: Määrittää, että komentosarja tulee tulkita Bash-kuoren avulla.for a in 1 2 3 4 5 6 7 8 9 10>: Aloittaa for-silmukan, joka iteroi arvojen 1 - 10 yli ja määrittää jokaisen arvon muuttujallea>jokaisessa iteraatiossa.do>: Merkitsee silmukan rungon alun.if [ $a == 5 ]>: Tarkistaa, onko nykyinen arvoa>on yhtä suuri kuin 5.then>: Merkitsee suoritettavan ehdollisen lohkon alun, jos ehto on tosi.break>: Poistuu silmukasta, jos ehto on tosi.
fi>: Merkitsee ehdollisen lauseen lopun.
echo 'Iteration no $a'>: Tulostaa viestin, joka osoittaa nykyisen iteraationumeron.done>: Merkitsee silmukan lopun.
Skripti perustaa for-silmukan, joka iteroi arvojen 1 - 10 yli. Jokaisen iteraation aikana se tarkistaa, onko arvoa>on yhtä suuri kuin 5. Jos on, silmukasta poistutaan käyttämälläbreak>lausunto. Muussa tapauksessa se tulostaa viestin, joka osoittaa nykyisen iteraationumeron. Silmukka jatkuu, kunnes se suorittaa kaikki iteraatiot tai kunnes se kohtaa break-lauseen.
For-silmukan toteutus continue-lauseella Shell Scriptissa.
Ensin luomme tiedoston tekstieditorilla Linuxissa. Tässä tapauksessa käytämme vim-editoria.
vim for_continue.sh>
Voit korvata for_continue.sh halutulla nimellä.
Sitten teemme skriptimme suoritettavan käyttämällä chmod-komentoa Linuxissa.
chmod +x for_continue.sh>
#/bin/bash
a in 1 2 3 4 5 6 7 8 9 10
tehdä# jos a = 5, jatka silmukkaa ja
# älä siirry riville 8jos [ $a == 5 ]
sitten
jatkaa
olla
echo Iteraatio ei $a
tehty
Lähtö:
merkkijono etsi c++

jatka lausetta for loopissa Linuxissa
Selitys:
-
#/bin/bash>: Määrittää, että komentosarja tulee tulkita Bash-kuoren avulla. -
for a in 1 2 3 4 5 6 7 8 9 10>: Aloittaa for-silmukan, joka iteroi arvojen 1 - 10 yli ja määrittää jokaisen arvon muuttujallea>jokaisessa iteraatiossa. -
do>: Merkitsee silmukan rungon alun. -
if [ $a == 5 ]>: Tarkistaa, onko nykyinen arvoa>on yhtä suuri kuin 5.-
then>: Merkitsee suoritettavan ehdollisen lohkon alun, jos ehto on tosi.-
continue>: Ohittaa silmukan muun osan ja siirtyy seuraavaan iteraatioon, jos ehto on tosi.
-
-
fi>: Merkitsee ehdollisen lauseen lopun.
-
-
echo 'Iteration no $a'>: Tulostaa viestin, joka osoittaa nykyisen iteraationumeron. Tämä rivi ohitetaan, josa>on yhtä suuri kuin 5 johtuencontinue>lausunto. -
done>: Merkitsee silmukan lopun.
Skripti perustaa for-silmukan, joka iteroi arvojen 1 - 10 yli. Jokaisen iteraation aikana se tarkistaa, onko arvoa>on yhtä suuri kuin 5. Jos on, silmukka jatkaa seuraavaan iteraatioon suorittamatta silmukan rungossa olevia muita lauseita. Muussa tapauksessa se tulostaa viestin, joka osoittaa nykyisen iteraationumeron. Silmukka jatkuu, kunnes se suorittaa kaikki iteraatiot.
'kunnes' -lauseke Shell Scriptissa Linuxissa
till-silmukka suoritetaan niin monta kertaa kuin ehdon/komennon arvoksi tulee epätosi. Silmukka päättyy, kun ehdosta/komennosta tulee tosi.
Syntaksi:
#/bin/bash until do done>
Toteutetaan 'kunnes' Loop in Shell Scrip
Ensin luomme tiedoston tekstieditorilla Linuxissa. Tässä tapauksessa käytämme vim-editoria.
vim until.sh>
Voit vaihtaa siihen asti. sh halutulla nimellä.
Sitten teemme skriptimme suoritettavan käyttämällä chmod-komentoa Linuxissa.
chmod +x until.sh>
#/bin/bash
a = 0
# -gt on suurempi kuin operaattori
#Iteroi silmukkaa, kunnes a on suurempi kuin 10asti [ $a -gt 10 ]
tehdä# Tulosta arvot
kaiku $a# lisää arvoa
a=`laus $a + 1`
tehty
Lähtö:

Silmukkaan asti Linuxissa
Selitys:
-
#/bin/bash>: Määrittää, että komentosarja tulee tulkita Bash-kuoren avulla. -
a=0>: Alustaa muuttujana>arvolla 0. -
until [ $a -gt 10 ]>: Aloittaa till-silmukan, joka jatkuu niin kauan kuin arvoa>ei ole suurempi kuin 10. -
do>: Merkitsee silmukan rungon alun. -
echo $a>: Tulostaa nykyisen arvona>konsoli. -
a=>lauseke $a + 1 : Kasvattaa arvoaa>kirjoittaja 1. Theexpr>komentoa käytetään aritmeettisiin lausekkeisiin. -
done>: Merkitsee silmukan lopun.
Huomautus: Shell-skripti on isot ja pienet kirjaimet huomioiva kieli, mikä tarkoittaa, että skriptejä kirjoitettaessa on noudatettava oikeaa syntaksia.
Esimerkkejä silmukkalausekkeista
1. Värien toistaminen For-silmukalla
Ensin luomme tiedoston tekstieditorilla Linuxissa. Tässä tapauksessa käytämme vim-editoria.
vim color.sh>
Voit korvata color.sh haluamallasi nimellä.
Sitten teemme skriptimme suoritettavaksi käyttämällä chmod-komentoa Linuxissa.
chmod +x color.sh>
#/bin/bash
VÄRIT = punainen vihreä sininen
# for-silmukka jatkuu, kunnes se lukee kaikki arvot VÄRIstä
COLOR, $COLORS
tehdä
echo COLOR: $COLOR
tehty
Lähtö:

Linuxiin asti
Selitys:
iphone emojit Androidissa
- Värien alustus:
COLORS='red green blue'>: Alustaa muuttujan nimeltäCOLORS>välilyönnillä erotetulla väriarvoluettelolla (punainen, vihreä ja sininen).
- Silmukan iteraatiolle:
for COLOR in $COLORS>: Aloittaa for-silmukan, joka toistuu jokaisen arvon yliCOLORS>muuttuja.- Loop Body:
echo 'COLOR: $COLOR'>: Tulostaa jokaiselle värille viestin, joka näyttää nykyisen väriarvon.
- Loop Body:
- Silmukka jatkuu, kunnes se käsittelee kaikki arvot
COLORS>muuttuja.
Tämä esimerkki osoittaa yksinkertaisen for-silmukan Bashissa, joka toistaa väriluetteloa, joka on tallennettu väreihinCOLORS>muuttuja. Silmukka tulostaa viestin jokaiselle värille, joka ilmaisee parhaillaan käsiteltävän värin. Silmukka toistuu, kunnes kaikki väriarvot ovat loppuneet.
2. Äärettömän silmukan luominen true:lla Shell Scriptissa
Ensin luomme tiedoston tekstieditorilla Linuxissa. Tässä tapauksessa käytämme 'vim'-editoria.
vim infinite.sh>
Voit korvata infinite.sh haluamallasi nimellä.
Sitten teemme skriptimme suoritettavaksi käyttämällä chmod-komentoa Linuxissa.
chmod +x infinite.sh>
#/bin/bash
usa kaupungin nimivaikka totta
tehdä# Komento suoritetaan
# Sleep 1 tarkoittaa, että se nukkuu 1 sekunnin
echo Hei, olen infinity loop
nukkua 1
tehty
Lähtö:

ääretön silmukka linuxissa
Selitys:
Infinite Loop -rakenne:
while true>: Aloittaa while-silmukan, joka jatkuu loputtomasti ehdonatrue>on aina totta.- Loop Body:
echo 'Hi, I am infinity loop'>: Tulostaa viestin, joka osoittaa, että komentosarja on päättymättömässä silmukassa.sleep 1>: Keskeyttää silmukan suorittamisen 1 sekunniksi ennen seuraavaa iteraatiota.
- Loop Body:
- Silmukka jatkuu loputtomiin suorittaen komentoja kehossaan toistuvasti.
Tämä esimerkki esittelee äärettömän silmukan luomisen käyttämällä while true -rakennetta Bashissa. Silmukka tulostaa jatkuvasti sanoman, joka osoittaa sen tilan äärettömänä silmukana ja sisältää lepotila 1 -komennon, mikä aiheuttaa yhden sekunnin viiveen iteraatioiden välillä. Infinite-silmukoita käytetään usein prosesseissa, joiden on suoritettava jatkuvasti, kunnes ne keskeytetään manuaalisesti.
3. Interaktiivinen nimenvahvistussilmukka
Ensin luomme tiedoston tekstieditorilla Linuxissa. Tässä tapauksessa käytämme 'vim'-editoria.
vim name.sh>
Voit korvata nimi.sh haluamallasi nimellä.
Sitten teemme skriptimme suoritettavaksi käyttämällä chmod-komentoa Linuxissa.
chmod +x name.sh>
#/bin/bash
OIKEA = n
kun taas [ $OIKEIN == n ]
tehdä#-silmukka katkeaa, kun syötät y eli kun nimesi on oikein
# -p tarkoittaa kehotteen kysymistäread -p Kirjoita nimesi: NIMI
read -p Onko ${NAME} oikein? OIKEA
tehty
Lähtö:

Interaktiivinen kirjoitus Linuxissa
Selitys:
- Alustus:
CORRECT=n>: Alustaa muuttujan nimeltäCORRECT>arvolla n. Tätä muuttujaa käytetään silmukan ohjaamiseen.
- Interaktiivinen silmukka:
while [ '$CORRECT' == 'n' ]>: Aloittaa while-silmukan, joka jatkuu niin kauan kuin arvoCORRECT>on yhtä suuri kuin n.- Loop Body:
read -p 'Enter your name:' NAME>: Kehottaa käyttäjää antamaan nimensä ja tallentaa syötteen tiedostoonNAME>muuttuja.read -p 'Is ${NAME} correct? ' CORRECT>: pyytää käyttäjää vahvistamaan, onko syötetty nimi oikein, ja päivittääCORRECT>muuttuvat vastaavasti.
- Loop Body:
- Silmukka jatkuu, kunnes käyttäjä syöttää y:n (osoittaa oikean nimen).
Tämä esimerkki osoittaa interaktiivisen silmukan, joka kehottaa käyttäjää antamaan nimensä ja pyytää sitten vahvistusta. Silmukka jatkuu, kunnes käyttäjä vahvistaa syöttämällä y:n, että syötetty nimi on oikein. Silmukka käyttää ` read> `>komento käyttäjän syötteeseen ja päivittää ` CORRECT> `>muuttuja ohjaamaan silmukan virtausta.
Johtopäätös
Tässä artikkelissa käsittelimme Bash-komentosarjan silmukoita, peittämistäwhile>,for>, jauntil>silmukat. Se esittelee käytönbreak>jacontinue>lausekkeita silmukan käyttäytymisen muokkaamiseksi. Käytännön esimerkit havainnollistavat silmukoiden toteuttamista, mukaan lukien väriarvojen iterointi, äärettömien silmukoiden luominen ja interaktiivisen silmukan rakentaminen käyttäjän syötteiden validointia varten. Opas tarjoaa tiiviin mutta informatiivisen resurssin silmukkarakenteiden ymmärtämiseen ja hyödyntämiseen Bash-komentosarjassa.