logo

Silmukkalausunnot | Shell Script

Lausekkeiden silmukoita Shell-komentosarjassa: Bash-ohjelmoinnissa voidaan käyttää yhteensä 3 silmukkalauseketta

kuplalajittelu

Sisällysluettelo



Silmukkakäskyjen kulun muuttamiseksi käytetään kahta komentoa:

  1. tauko
  2. 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

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

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 8

jos [ $a == 5 ]
sitten
jatkaa
olla
echo Iteraatio ei $a
tehty

Lähtö:

merkkijono etsi c++
jatka lausetta for loopissa Linuxissa

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 10

asti [ $a -gt 10 ]
tehdä

# Tulosta arvot
kaiku $a

# lisää arvoa
a=`laus $a + 1`
tehty

Lähtö:

Yksikkösilmukka Linuxissa

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

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.
    • Silmukka jatkuu, kunnes se käsittelee kaikki arvotCOLORS>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 nimi

vaikka 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

ää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.
  • 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

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.
    • 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.