Ohjelmointikielessä on pääasiassa kolmenlaisia silmukoita (for, while ja till). Kaikki kolme silmukkatyyppiä ovat tärkeitä eri tavoin. While- ja till-silmukoiden välillä ei ole paljon eroa, mutta for-silmukka toimii aivan eri tavalla kuin nämä kaksi. Siksi voit käyttää näitä silmukoita luodaksesi interaktiivisia skriptejä bash-käyttäjänä.
Joten bash-esimerkkien oppiminen voi auttaa sinua parantamaan taitojasi skriptien luomisessa. Joten tässä opetusohjelmassa sisällytämme 10 siistiä ja mahtavaa bash-silmukkaesimerkkiä, joita voit yrittää parantaa komentosarjataitojasi.
10 siistiä ja mahtavaa Bash Loop -esimerkkiä
Tässä osiossa selitämme erilaisia esimerkkejä ja lähestymistapoja, joita olemme käyttäneet silmukoissa.
Seq Command silmukalla Bashissa
Voit käyttää seq-komentoa for-silmukassa numerosarjan luomiseen. Sinulla on esimerkiksi bash-skripti 'File.sh', joka sisältää seuraavan koodin:
#!/bin/bash
varten A sisään $ ( seq 5 kaksi 25 )
tehdä
kaiku 'numerot $A ovat'
tehty
Saat seuraavan tuloksen suoritettuasi komentosarjan terminaalissa:
. / tiedosto.sh
Nimeä tiedostot uudelleen silmukan avulla
Bash-skriptillä voit käyttää for-silmukoita useiden tiedostojen uudelleennimeämiseen. Sinulla on esimerkiksi useita .txt-tiedostoja ja haluat lisätä nykyisen päivämäärän nimeen. Joten tässä on esimerkkiskripti, jota voit käyttää:
#!/bin/bashvarten A sisään $ ( ls * .txt ) ; tehdä
mv $A ( perusnimi $A .txt ) _$ ( Päivämäärä % d % m % ) .txt
tehty
Nyt voit suorittaa komentosarjan, ja se muuttaa kaikkien .txt-tiedostojen nimet lisäämällä nykyisen päivämäärän:
Vastaavasti voit muuttaa tiedoston tunnisteita yhdellä komentosarjalla. Muutetaan siis .txt-laajennus .sh:ksi seuraavan komentosarjan avulla:
varten tiedosto sisään * .txt; tehdä
mv -- ' $tiedosto ' '{tiedosto%.txt}.sh'
tehty
Kun komentosarja on suoritettu päätteessä, saat .sh-tiedostot .txt-tiedoston sijaan:
. / MyFile.sh
Infinite For Loop Bashissa
Kun silmukassa ei ole määritetty pääteehtoa, sitä kutsutaan äärettömäksi silmukaksi. Tässä Bash-silmukan esimerkissä tarkastelemme bashin ääretöntä for-silmukkaa. Seuraava ääretön for-silmukka määritellään kaksoispuolipisteellä ( ; ; ), eikä se sisällä alku-, toiminta- tai lopetusosia.
Alla oleva komentosarja jatkuu, kunnes painat Ctrl+C tai kirjoitat syötteeksi 'quit'. Tämä skripti tulostaa kaikki syötteenä annetut numerot 10-50. Muussa tapauksessa se tulostaa 'numero on alueen ulkopuolella'.
#!/bin/bash#ääretön silmukka
varten ( ( ; ; ) )
tehdä
kaiku 'Anna luku väliltä 10 - 50'
lukea n
jos [ $n == 'lopettaa' ]
sitten
kaiku 'lopetettu'
poistu 0
olla
jos ( ( $n < 10 || $n > viisikymmentä ) )
sitten
kaiku 'Numero on alueen ulkopuolella'
muu
kaiku 'Numero on $n '
olla
tehty
Annoimme 45 ja 23 kelvollista syötettä yllä olevaan skriptiin. Sen jälkeen tulostamme syötteeksi 2, joka kertoo lähdössä, että 'numero on alueen ulkopuolella'. Tämän jälkeen komentosarjan sulkemiseksi kirjoitamme syötteeksi quit. Täällä voit myös painaa Ctrl+C lopettaaksesi äärettömän silmukan.
Three Expression Loop Bashissa
Kolmen lausekkeen silmukan nimestä tiedetään, että se sisältää kolme lauseketta, joita kutsutaan myös ohjauslausekkeiksi. Ensimmäinen lauseke (EXP1) on alustus, toinen lauseke (EXP2) on silmukkatesti tai ehto ja kolmas lauseke (EXP3) on laskentalauseke/vaihe. Suoritetaan kolmen lausekkeen silmukka bashissa:
#!/bin/bashvarten ( ( n = 5 ; n > = 1 ; n-- ) )
tehdä
kaiku 'Kirja $n '
tehty
Kun suoritat yllä olevan skriptin, saat seuraavan tulosteen.
Silmukka useilla ehdoilla
Olemme käyttäneet till-silmukkaa useilla ehdoilla seuraavassa bash-silmukan esimerkissä. Tässä skriptissä otimme 'm' ja 'n', kaksi muuttujaa, joiden arvot ovat 20 ja 10, ja säilytimme rajan 15. Tässä laitamme 'm' ja 'n' ehdot yhteen silmukkaan, jossa silmukka jatkuu, kunnes arvo 'm' on pienempi kuin raja ja 'n' on suurempi kuin raja.
#!/bin/bashraja = viisitoista
m = kaksikymmentä
n = 10
siihen asti kun [ [ $m -lt $rajoitus || $n -gt $rajoitus ] ] ;
tehdä
kaiku 'Jos M = $m sitten N = $n '
( ( m-- ) )
( ( n++ ) )
tehty
Voit nähdä, että yllä olevan skriptin suorittaminen jatkuu, kunnes arvot 'm' ja 'n' tulevat samalle tasolle.
Lue tiedosto Bashissa
Bashissa voit lukea tiedoston sisällön useilla tavoilla. Tässä bash-silmukan esimerkissä luemme tiedoston sisällön tiedostonimen kautta. Voimme käyttää seuraavaa komentosarjaa tiedoston lukemiseen bashissa:
#!/bin/bashkaiku 'Syötetyn tiedoston sisältö on:'
sillä aikaa
lukea linja
tehdä
kaiku $rivi
tehty < ~ Asiakirjat / Linuxhint.txt
Yllä olevan skriptin suorittamisen jälkeen voit lukea syötetyn tiedoston koko sisällön.
Kirjoittaminen tiedostoon
Voit käyttää komentosarjan silmukoita tiedoston muokkaamiseen suoraan päätteestä. Jos meillä on esimerkiksi txt-tiedosto 'Example.txt' ja haluamme lisätä tietoja, voimme käyttää seuraavaa komentosarjaa:
Jos suoritat yllä olevan skriptin, se pyytää sinua antamaan tiedot:
Kun olet antanut tiedot, tallenna tiedosto painamalla CTRL + D ja viimeistele prosessi onnistuneesti painamalla CTRL + Z.
Katkaise ja jatka lausekesilmukkaa Bashissa
Bashissa voit jatkaa silmukkalausettasi tauon jälkeen. Break-lause poistuu silmukasta ja siirtää sitten ohjauksen seuraavaan annettuun käskyyn. Iteraatio numero kaksi alkaa sen jälkeen, kun nykyinen iteraatio ohitetaan samalla jatkamiskäskyllä.
#!/bin/bashyhdellä = 16
siihen asti kun väärä
tehdä
( ( yhdellä-- ) )
jos [ [ $num -ekv 13 ] ]
sitten
jatkaa
elif [ [ $num - 4 ] ]
sitten
tauko
olla
kaiku 'LinuxHint= $num '
tehty
Seuraavassa bash-skriptissä voit nähdä, että kun 'num' on 13, se ohittaa muun silmukan rungon ja hyppää seuraavaan iteraatioon. Samoin silmukka katkeaa, kun 'num' on pienempi tai yhtä suuri kuin 4.
Yllä oleva skripti osoittaa, että silmukka alkaa 15:stä, katkeaa 13:sta ja jatkuu viiteen asti.
Keskiarvon laskeminen bashissa
Voit laskea keskiarvon suorittamalla komentosarjan bash-silmukassa. Tässä käyttäjä voi laskea määritetyn alueen lukujen keskiarvon. Seuraava komentosarja laskee käyttäjän syöttämän syötteen keskiarvon.
#!/bin/bashmerkit = '0'
KESKIVERTO = '0'
SUMMA = '500'
YHDELLÄ = '5'
sillä aikaa totta ; tehdä
kaiku -n 'Syötä merkit tai paina 'q' keskeyttääksesi' ; lukea merkit;
jos ( ( ' $ markkaa ' < '0' ) ) || ( ( ' $ markkaa ' > '100' ) ) ; sitten
kaiku 'Anna arvosanasi'
elif [ ' $ markkaa ' == 'q' ] ; sitten
kaiku 'Keskiarvosanat ovat: KESKIARVO $ %'
tauko
muu
SUMMA =$ [ SUMMA dollaria + $ markkaa ]
YHDELLÄ =$ [ $NUM + 1 ]
KESKIVERTO =$ [ SUMMA dollaria / $NUM ]
olla
tehty
Jos syöte ei ole alueella, tulostetaan viesti 'Syötä pisteet'. Kun käyttäjä painaa 'q' syötettyään kaikki merkit, skripti laskee likimääräisen keskiarvon kaikista syötetyistä numeroista.
Kun yllä oleva komentosarja ajetaan, tuloste on jotain tämän kaltaista.
Lue Bashin komentorivi-argumentit
Bashissa voit lukea yksittäisiä komentoriviargumentteja silmukoiden avulla. Skripti tulostaa muotoillut argumenttiarvot. Suoritamme komentorivin argumentit bashissa käyttämällä while-silmukkaa seuraavassa skriptissä. Tämän kautta tulostat arvon, joka välittää argumentin arvo valid -vaihtoehdon yhden komennon avulla.
#!/bin/bashsillä aikaa getopts N:F:M: OPT
tehdä
tapaus ' ${OPT} '
sisään
N ) nimi = ${OPTARG} ;;
F ) isän nimi = ${OPTARG} ;;
M ) äidinnimi = ${OPTARG} ;;
* ) kaiku 'Virheellinen'
poistu 1 ;;
esac
tehty
printf 'Nimi: $nimi \n Isän nimi: $isännimi \n Äidin nimi: $äidinnimi \n '
Siten voit tulostaa muotoillut argumenttiarvot ulostuloon suorittamalla yllä olevan komentosarjan bashissa.
Käärimistä
Joten tämä oli lyhyt tieto 10 hienosta ja mahtavasta bash-silmukkaesimerkistä, jotka voit oppia. Olemme käyttäneet erilaisia silmukoita luodaksemme interaktiivisen skriptin helposti. Lisäksi selitimme myös yllä olevissa esimerkeissä käytetyt peruslähestymistavat. Jos sinulla on perusteellisia tietoja bashin silmukoista, vieraile virallisella verkkosivustollamme saadaksesi lisätietoja.