10 lahedat ja vinget Bash Loopi näidet

10 Lahedat Ja Vinget Bash Loopi Naidet



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/bash
jaoks 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:

. / MinuFail.sh



Samamoodi saate muuta faili laiendeid ühe skripti kaudu. Muutkem .txt laiendus laiendiks .sh järgmise skripti abil:

#!/bin/bash
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/bash
jaoks ( ( 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/bash
piiri = 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/bash
kaja '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/bash
mä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/bash
samal 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.