Programavimo kalboje daugiausia yra trijų tipų kilpos (for, while ir iki). Visi trys kilpų tipai yra svarbūs skirtingais būdais. Nėra daug skirtumų tarp while ir till kilpų, tačiau for loop veikia visiškai kitaip nei šios dvi. Štai kodėl galite naudoti šias kilpas kurdami interaktyvius scenarijus kaip bash vartotojas.
Taigi, mokantis paprastų pavyzdžių, galite pagerinti scenarijų kūrimo įgūdžius. Taigi į šią mokymo programą įtrauksime 10 puikių ir nuostabių bash ciklo pavyzdžių, kuriuos galite pabandyti pagerinti savo scenarijų rašymo įgūdžius.
10 šaunių ir nuostabių „Bash Loop“ pavyzdžių
Šiame skyriuje paaiškinsime įvairius pavyzdžius ir būdus, kuriuos taikėme cikle.
Seq komanda su kilpa Bash
Norėdami sukurti skaičių seką, galite naudoti komandą seq cikle for. Pavyzdžiui, turite bash scenarijų „File.sh“, kuriame yra šis kodas:
#!/bin/bash
dėl A in $ ( sek 5 du 25 )
daryti
aidas 'skaičiai $A yra'
padaryta
Įvykdę scenarijų terminale gausite tokį rezultatą:
. / failas.sh
Pervardykite failus naudodami kilpą
Naudodami bash scenarijų galite naudoti for kilpas, kad pervardytumėte kelis failus. Pavyzdžiui, turite kelis .txt failus ir norite pridėti dabartinę datą su pavadinimu. Taigi čia yra scenarijaus pavyzdys, kurį galite naudoti:
#!/bin/bashdėl A in $ ( ls * .txt ) ; daryti
mv $A ( bazinis vardas $A .txt ) _$ ( data % d % m % ) .txt
padaryta
Dabar galite paleisti scenarijų ir jis pakeis visų .txt failų pavadinimus pridėdamas dabartinę datą:
Panašiai galite pakeisti failo plėtinius naudodami vieną scenarijų. Taigi pakeiskime plėtinį .txt į .sh naudodami šį scenarijų:
dėl failą in * .txt; daryti
mv -- “ $failas “ „{failas%.txt}.sh“
padaryta
Vykdę scenarijų terminale, gausite .sh, o ne .txt failus:
. / Mano failas.sh
Infinite For Loop Bash
Kai cikle neapibrėžta jokia užbaigimo sąlyga, ji vadinama begaliniu ciklu. Šiame „Bash“ ciklo pavyzdyje mes pažvelgsime į begalinę „bash“ kilpą. Šis begalinis ciklas yra apibrėžtas dvigubu kabliataškiu ( ; ; ) ir joje nėra jokių pradinių, veiksmų ar pabaigos dalių.
Toliau pateiktas scenarijus tęsis tol, kol paspausite Ctrl+C arba kaip įvestį įvesite „quit“. Šis scenarijus atspausdins kiekvieną skaičių nuo 10 iki 50, kuris pateikiamas kaip įvestis. Priešingu atveju bus išspausdinta „numeris nepatenka į diapazoną“.
#!/bin/bash#begalinis ciklas
dėl ( ( ; ; ) )
daryti
aidas 'Įveskite skaičių nuo 10 iki 50'
skaityti n
jeigu [ $n == 'mesti' ]
tada
aidas 'nutraukta'
išeiti 0
būti
jeigu ( ( $n < 10 || $n > penkiasdešimt ) )
tada
aidas „Numeris nepatenka į diapazoną“
Kitas
aidas 'Skaičius yra $n “
būti
padaryta
Aukščiau pateiktame scenarijuje pateikėme 45 ir 23 galiojančias įvestis. Po to kaip įvestį išspausdiname 2, kuri išvestyje nurodo, kad „skaičius nepatenka į diapazoną“. Po to, norėdami uždaryti scenarijų, kaip įvestį įvedame quit. Čia taip pat galite paspausti Ctrl+C, kad išeitumėte iš begalinio ciklo.
Trys išraiškos kilpa Bash
Iš trijų išraiškų kilpos pavadinimo žinoma, kad ją sudaro trys išraiškos, dar vadinamos valdymo išraiškomis. Pirmoji išraiška (EXP1) yra iniciatorius, antroji išraiška (EXP2) yra ciklo testas arba sąlyga, o trečioji išraiška (EXP3) yra skaičiavimo išraiška / veiksmas. Paleiskite trijų išraiškų kilpą bash:
#!/bin/bashdėl ( ( n = 5 ; n > = 1 ; n-- ) )
daryti
aidas 'Knyga $n “
padaryta
Vykdydami aukščiau pateiktą scenarijų gausite tokią išvestį.
Kilpa su keliomis sąlygomis
Toliau pateiktame bash ciklo pavyzdyje naudojome iki ciklo su keliomis sąlygomis. Šiame scenarijuje mes paėmėme „m“ ir „n“ – du kintamuosius, kurių reikšmės yra atitinkamai 20 ir 10, ir išlaikėme 15 ribą. Čia mes įtraukėme „m“ ir „n“ sąlygas į kilpą, kuriame ciklas veiks tol, kol „m“ reikšmė bus mažesnė už ribą, o „n“ bus didesnė už ribą.
#!/bin/bashriba = penkiolika
m = dvidešimt
n = 10
iki [ [ mln. USD -lt $ limitas || $n -gt $ limitas ] ] ;
daryti
aidas 'Jei M = mln. USD tada N = $n “
( ( m-- ) )
( ( n++ ) )
padaryta
Matote, kad paleidus aukščiau pateiktą scenarijų bus paleistas tol, kol „m“ ir „n“ reikšmės pasieks tą patį lygį.
Skaityti failą Bash
Bash failo turinį galite skaityti keliais būdais. Šiame bash ciklo pavyzdyje failo turinį skaitysime per failo pavadinimą. Mes galime naudoti šį scenarijų, norėdami skaityti failą bash:
#!/bin/bashaidas 'Įvesto failo turinys yra:'
kol
skaityti linija
daryti
aidas $ eilutė
padaryta < ~ Dokumentai / Linuxhint.txt
Paleidę aukščiau pateiktą scenarijų, galite perskaityti visą įvesto failo turinį.
Rašymas į failą
Galite naudoti scenarijaus kilpas, norėdami redaguoti failą tiesiai iš terminalo. Pavyzdžiui, jei turime txt failą „Example.txt“ ir norime pridėti tam tikros informacijos, galime naudoti šį scenarijų:
Jei paleisite aukščiau pateiktą scenarijų, jis paprašys įvesti išsamią informaciją:
Įvedę išsamią informaciją, paspauskite CTRL + D, kad išsaugotumėte failą, ir CTRL + Z, kad sėkmingai užbaigtumėte procesą.
Pertraukite ir tęskite pareiškimo kilpą Bash
Bash kalboje galite tęsti savo ciklo teiginį po pertraukos. Pertraukos sakinys išeina iš ciklo ir tada perduoda valdymą kitam duotam sakiniui. Antroji iteracija prasideda po to, kai dabartinė iteracija praleidžiama su tuo pačiu teiginiu tęsti.
#!/bin/bashant vieno = 16
iki klaidinga
daryti
( ( ant vieno-- ) )
jeigu [ [ $num -ekv 13 ] ]
tada
Tęsti
elifas [ [ $num - 4 ] ]
tada
pertrauka
būti
aidas „LinuxHint= $num “
padaryta
Toliau pateiktame bash scenarijuje matote, kad kai „skaičius“ yra lygus 13, jis praleidžia likusį ciklo turinį ir pereina į kitą iteraciją. Panašiai kilpa nutrūks, kai „skaičius“ yra mažesnis arba lygus 4.
Aukščiau pateiktas scenarijus rodo, kad ciklas prasideda 15, nutrūksta 13 ir tęsiasi iki 5.
Vidurkio apskaičiavimas Bash
Vidurkį galite apskaičiuoti paleisdami scenarijų „bash“ cikle. Tokiu būdu vartotojas gali apskaičiuoti skaičių vidurkį apibrėžtame diapazone. Šis scenarijus apskaičiuoja vartotojo pateiktos įvesties vidurkį.
#!/bin/bashženklų = '0'
VIDUTINIS = '0'
SUMA = '500'
ANT VIENO = '5'
kol tiesa ; daryti
aidas -n „Įveskite savo pažymius arba paspauskite „q“, kad nutrauktumėte“ ; skaityti ženklai;
jeigu ( ( “ $ markių “ < '0' ) ) || ( ( “ $ markių “ > '100' ) ) ; tada
aidas 'Prašome įvesti savo pažymius'
elifas [ “ $ markių “ == 'q' ] ; tada
aidas 'Vidutiniai pažymiai yra: VIDUTINIS USD %'
pertrauka
Kitas
SUMA =$ [ $SUM + $ markių ]
ANT VIENO =$ [ $NUM + 1 ]
VIDUTINIS =$ [ $SUM / $NUM ]
būti
padaryta
Jei įvestis nepatenka į diapazoną, išspausdinamas pranešimas „Prašome įvesti savo ženklus“. Kai vartotojas, įvedęs visus ženklus, paspaudžia „q“, scenarijus apskaičiuoja apytikslį visų įvestų skaičių vidurkį.
Kai bus paleistas aukščiau pateiktas scenarijus, jūsų išvestis bus maždaug tokia.
Perskaitykite „Bash“ komandų eilutės argumentus
Bash galite skaityti atskirus komandinės eilutės argumentus naudodami kilpas. Scenarijus išspausdina suformatuotas argumentų reikšmes. Komandinės eilutės argumentus paleidžiame bash naudodami ciklą kitame scenarijuje. Tai atlikę, naudodami vieną komandą išspausdinsite vertę, perduodančią galiojančią argumento vertės parinktį.
#!/bin/bashkol getopts N:F:M: OPT
daryti
atveju “ ${OPT} “
in
N ) vardas = ${OPTARG} ;;
F ) tėvo vardas = ${OPTARG} ;;
M ) motinos vardas = ${OPTARG} ;;
* ) aidas 'Neteisingas'
išeiti 1 ;;
esac
padaryta
printf 'Vardas: $vardas \n Tėvo vardas: $tėvo vardas \n Motinos vardas: $motinos vardas \n “
Taigi galite atspausdinti suformatuotas argumentų reikšmes į išvestį paleisdami aukščiau pateiktą scenarijų bash.
Apvyniojimas
Taigi tai buvo trumpa informacija apie 10 puikių ir nuostabių bash ciklo pavyzdžių, kuriuos galite išmokti. Norėdami lengvai sukurti interaktyvų scenarijų, naudojome įvairių tipų kilpas. Be to, mes taip pat paaiškinome pirmiau pateiktuose pavyzdžiuose naudotus pagrindinius metodus. Jei turite išsamios informacijos apie bash kilpas, apsilankykite oficialioje svetainėje ir sužinokite daugiau.