Programmeerimiskeeles on peamiselt kolme tüüpi silmuseid (for, while ja till). Kõik kolm tüüpi silmuseid on erineval viisil olulised. While- ja till-tsüklite vahel pole suurt vahet, kuid for loop töötab nendest kahest üsna erinevalt. Sellepärast saate neid silmuseid kasutada interaktiivsete skriptide loomiseks bashi kasutajana.
Nii et bash-näidete õppimine võib aidata teil skriptide loomise oskusi parandada. Sellesse õpetusesse lisame 10 lahedat ja vinget bash-loopi näidet, mida saate proovida oma skriptimisoskuste täiustamiseks.
10 lahedat ja vinget Bash Loopi näidet
Selles jaotises selgitame erinevaid näiteid ja lähenemisviise, mida oleme tsüklites kasutanud.
Seq käsk tsükliga Bashis
Numbrijada loomiseks saate kasutada for-tsüklis käsku seq. Näiteks on teil bash-skript 'File.sh', mis sisaldab järgmist koodi:
#!/bin/bash
jaoks A sisse $ ( järg 5 kaks 25 )
teha
kaja 'numbrid $A on'
tehtud
Pärast skripti täitmist terminalis saate järgmise tulemuse:
. / fail.sh
Nimetage failid ümber tsükli abil
Bash-skripti kasutades saate mitme faili ümbernimetamiseks kasutada silmust for. Näiteks teil on mitu .txt-faili ja soovite lisada praeguse kuupäeva koos nimega. Siin on näidisskript, mida saate kasutada:
#!/bin/bashjaoks A sisse $ ( ls * .txt ) ; teha
mv $A ( baasnimi $A .txt ) _$ ( kuupäeva % d % m % ) .txt
tehtud
Nüüd saate skripti käivitada ja see muudab kõigi .txt-failide nimesid, lisades praeguse kuupäeva:
Samamoodi saate muuta faili laiendeid ühe skripti kaudu. Muutkem .txt laiendus laiendiks .sh järgmise skripti abil:
jaoks faili sisse * .txt; teha
mv -- ' $ fail ' '{file%.txt}.sh'
tehtud
Pärast skripti täitmist terminalis saate .sh-failid, mitte .txt-failid:
. / MinuFail.sh
Infinite For Loop Bashis
Kui tsüklis ei ole defineeritud lõpetamise tingimust, nimetatakse seda lõpmatuks tsükliks. Selles Bashi tsükli näites vaatleme bashi lõpmatut tsüklit. Järgmine lõpmatu silmus on määratletud kahesemikooloniga ( ; ; ) ja see ei sisalda algus-, tegevus- ega lõpposasid.
Allpool olev skript jätkub, kuni vajutate Ctrl+C või sisestate sisendiks 'quit'. See skript prindib kõik numbrid vahemikus 10 kuni 50, mis sisestatakse. Vastasel juhul trükitakse 'number on vahemikust väljas'.
#!/bin/bash#lõpmatu silmus
jaoks ( ( ; ; ) )
teha
kaja 'Sisestage arv vahemikus 10 kuni 50'
lugeda n
kui [ $n == 'lõpeta' ]
siis
kaja 'lõpetatud'
väljuda 0
olla
kui ( ( $n < 10 || $n > viiskümmend ) )
siis
kaja 'Arv on vahemikust väljas'
muidu
kaja 'Arv on $n '
olla
tehtud
Andsime ülaltoodud skriptile 45 ja 23 kehtivat sisendit. Pärast seda trükime sisendiks 2, mis ütleb väljundis, et 'number on vahemikust väljas'. Pärast seda tippime skripti sulgemiseks sisendiks quit. Siin saate ka vajutada Ctrl+C, et lõpetada lõpmatu tsükkel.
Kolm väljendustsüklit Bashis
Kolmeavaldise tsükli nimest on teada, et see sisaldab kolme avaldist, mida nimetatakse ka juhtavaldisteks. Esimene avaldis (EXP1) on initsialiseerija, teine avaldis (EXP2) on tsükli test või tingimus ja kolmas avaldis (EXP3) on loendusavaldis/samm. Käitame bashis kolme avaldise tsükli:
#!/bin/bashjaoks ( ( n = 5 ; n > = 1 ; n-- ) )
teha
kaja 'Raamat $n '
tehtud
Ülaltoodud skripti käivitamisel saate järgmise väljundi.
Silmus mitme tingimusega
Oleme kasutanud kuni tsüklit mitme tingimusega järgmises bash-tsükli näites. Selles skriptis võtsime 'm' ja 'n' kaks muutujat, mille väärtused on vastavalt 20 ja 10, ning jätsime piiranguks 15. Siin panime tsüklisse 'm' ja 'n' tingimused kokku, milles silmus kulgeb seni, kuni väärtus 'm' on väiksem kui piir ja 'n' on suurem kui piir.
#!/bin/bashpiiri = viisteist
m = kakskümmend
n = 10
kuni [ [ $m -lt $limit || $n -gt $limit ] ] ;
teha
kaja 'Kui M = $m siis N = $n '
( ( m-- ) )
( ( n++ ) )
tehtud
Näete, et ülaltoodud skript töötab seni, kuni 'm' ja 'n' väärtused jõuavad samale tasemele.
Faili lugemine Bashis
Bashis saate faili sisu lugeda mitmel viisil. Selles bash-tsükli näites loeme faili sisu failinime kaudu. Bashis faili lugemiseks saame kasutada järgmist skripti:
#!/bin/bashkaja 'Sisestatud faili sisu on:'
samal ajal
lugeda rida
teha
kaja $rida
tehtud < ~ Dokumendid / Linuxhint.txt
Pärast ülaltoodud skripti käivitamist saate lugeda sisestatud faili kogu sisu.
Faili kirjutamine
Saate kasutada skripti silmuseid faili redigeerimiseks otse terminalist. Näiteks kui meil on txt-fail 'Example.txt' ja me tahame lisada teavet, saame kasutada järgmist skripti:
Kui käivitate ülaltoodud skripti, palub see teil sisestada üksikasjad:
Pärast üksikasjade sisestamist vajutage faili salvestamiseks CTRL + D ja protsessi edukaks lõpetamiseks CTRL + Z.
Katkesta ja jätka Bashi lausesilmust
Bashis saate tsüklilauset jätkata pärast pausi. Breaklause väljub tsüklist ja annab seejärel juhtimise üle järgmisele antud lausele. Iteratsioon number kaks algab pärast seda, kui praegune iteratsioon jäetakse vahele sama jätkamislausega.
#!/bin/bashühel = 16
kuni vale
teha
( ( ühel... ) )
kui [ [ $num -ekv 13 ] ]
siis
jätka
elif [ [ $num - 4 ] ]
siis
murda
olla
kaja 'LinuxHint= $num '
tehtud
Järgmises bash-skriptis näete, et kui 'arv' on võrdne 13-ga, jätab see ülejäänud tsükli keha vahele ja hüppab järgmisele iteratsioonile. Samamoodi katkeb silmus, kui 'arv' on väiksem kui 4 või sellega võrdne.
Ülaltoodud skript näitab, et tsükkel algab kell 15, katkeb kell 13 ja jätkub kuni 5.
Keskmise arvutamine bashis
Keskmise saate arvutada, käivitades skripti bash-tsüklis. Selle käigus saab kasutaja arvutada kindlaksmääratud vahemikus olevate numbrite keskmise. Järgmine skript arvutab kasutaja sisestatud sisendi keskmise.
#!/bin/bashmärgid = '0'
KESKMINE = '0'
SUMMA = '500'
ÜHES = '5'
samal ajal tõsi ; teha
kaja -n 'Sisestage oma märgid või vajutage katkestamiseks 'q' ; lugeda märgid;
kui ( ( ' $ marka ' < '0' ) ) || ( ( ' $ marka ' > '100' ) ) ; siis
kaja 'Palun sisestage oma hinded'
elif [ ' $ marka ' == 'q' ] ; siis
kaja 'Keskmised hinded on: KESKMINE $ %'
murda
muidu
SUMMA =$ [ SUMMA $ + $ marka ]
ÜHES =$ [ $NUM + 1 ]
KESKMINE =$ [ SUMMA $ / $NUM ]
olla
tehtud
Kui sisend ei ole vahemikus, prinditakse teade 'Palun sisestage oma hinded'. Kui kasutaja vajutab pärast kõigi märkide sisestamist “q”, arvutab skript kõigi sisestatud numbrite ligikaudse keskmise.
Kui ülaltoodud skript käivitatakse, on teie väljund umbes selline.
Lugege Bashi käsurea argumente
Bashis saate tsüklite abil lugeda üksikuid käsurea argumente. Skript prindib vormindatud argumentide väärtused. Käivitame käsurea argumente bashis, kasutades järgmises skriptis while-tsüklit. Selle kaudu prindite ühe käsu abil väärtuse, mis edastab argumendi väärtuse kehtiva valiku.
#!/bin/bashsamal ajal getopts N:F:M: OPT
teha
juhtum ' ${OPT} '
sisse
N ) nimi = ${OPTARG} ;;
F ) isa nimi = ${OPTARG} ;;
M ) emanimi = ${OPTARG} ;;
* ) kaja 'Kehtetu'
väljuda 1 ;;
esac
tehtud
printf 'Nimi: $nimi \n Isa nimi: $isanimi \n Ema nimi: $emanimi \n '
Seega saate vormindatud argumentide väärtused väljundisse printida, käivitades ülaltoodud skripti bashis.
Pakkimine
Nii et see oli lühike teave 10 laheda ja vinge bash loopi näite kohta, mida saate õppida. Oleme interaktiivse skripti hõlpsaks loomiseks kasutanud erinevat tüüpi silmuseid. Lisaks selgitasime ka ülaltoodud näidetes kasutatud põhilisi lähenemisviise. Kui teil on bashi silmuste kohta põhjalikud üksikasjad, külastage lisateabe saamiseks meie ametlikku veebisaiti.