Indlela Yokubhala A BASH "ye" Loop

Indlela yokusebenzisa i-BASH "ye" loop kwi-shell shell

I-BASH (ekhomba iBourne Again Shell) ulimi olulotshwe yizinhlelo zokusebenza eziningi ze- Linux nezinhlelo ze-UNIX.

Ungagijima imiyalo ye-BASH ngaphakathi kwefasitela elibulalayo ngemva kokunye noma ungangezela imiyalo efonini yokubhala ukuze ukhiqize iskripthi segobolondo.

Into enhle ngokubhala imibhalo yegobolondo yukuthi ungawagijima kaningi. Isibonelo cabanga ukuthi udinga ukwengeza umsebenzisi ohlelweni, usethe izimvume zabo futhi uphathe imvelo yabo yokuqala. Ungabhala phansi imiyalo ephepheni bese uwagijima njengoba ufaka abasebenzisi abasha noma ungabhala iskripthi esisodwa bese udlulisela amapharamitha kulowo script.

Izilimi zeSkripthi ezifana ne-BASH zinezakhiwo ezifanayo zokuhlela njengezinye izilimi. Isibonelo, ungasebenzisa imingcele yokungenisa ukungenisa okuvela kwikhibhodi bese uwagcina njengeziguquguquko. Ungathola ukuthi iskripthi senze isinyathelo esithile esekelwe ukubaluleka kwemingcele yokufaka .

Ingxenye eyinhloko yanoma yiluphi ulimi nolwazi lokubhala yilona ikhono lokusebenzisa uhlamvu olufanayo lwekhodi njalo futhi.

Kunezindlela eziningi zokuphinda ikhodi (eyaziwa nangokuthi yizikhonkwane). Kulo mhlahlandlela, uzoboniswa ukuthi ubhala kanjani i- "for" loop.

A for loop iphinda ingxenye ethile ikhodi njalo futhi. Ziwusizo ukuze uchungechunge lwemiyalo luqhubeke lusebenza kuze kube yilapho isimo esithile sifinyelelwe, emva kwalokho bayomisa.

Kulo mhlahlandlela, uzoboniswa izindlela ezinhlanu zokusebenzisa i-loop ngaphakathi kweskripthi se-BASH.

Ngaphambi Kokuqala

Ngaphambi kokuba uqale ngezibonelo ze-loop, udinga ukuvula iwindi lokugcina bese ulandela lezi zinyathelo:

  1. Faka izikripthi ze-mkdir ( funda kabanzi mayelana ne-mkdir lapha )
  2. Faka izikripthi ze-cd (lokhu kushintsha isiqondisi kuya kwizikripthi )
  3. Faka nano examplen.sh (lapho n isibonelo osebenza kuso)
  4. Faka iskripthi
  5. Cindezela i- CTRL + O ukuze ugcine futhi CTRL + X ukuze uphume
  6. Run bash examplen.sh (futhi, ngokuba yisibonelo osebenza nabo)

Indlela Yokukhiphela Ngehlu

#! / bin / bash
ngenombolo ku-1 2 3 4 5
yenza
bhala inombolo ye-$
kwenziwe
phuma ku-0

Indlela ye-BASH yokusebenzisa i-"for" izikhiya zihlukile ngendlela eyahlukene ngayo ezinye izinhlelo zokusebenza kanye nezilimi zokubhala ngokubhala "for" loops. Ake siphule phansi iskripthi ...

Ku-BASH "ye-" loop konke, izitatimende eziphakathi kokukwenza nokwenziwa zenziwa kanye nento yonke ohlwini.

Kulesi sibonelo esingenhla, uhlu luyinto ezayo emva kwegama ku (ie 1 2 3 4 5).

Isikhathi ngasinye lapho i-loop ihamba khona, inani elilandelayo ohlwini lifakwe kuhlu oluchazwe ngemuva kwegama elithi "for" . Esikhathini esingenhla, ukuguquguquka kubizwa ngokuthi inombolo .

Isitatimende se- echo sisetshenziselwa ukubonisa ulwazi esikrinini.

Ngakho-ke, lesi sibonelo sithatha izinombolo 1 kuya kwezingu-5 futhi siphumelela ngamunye ngesikrini:

Indlela Yokuvala Phakathi Kokuqala Nokuphela Kwendawo

Inkinga ngesibonelo esingenhla ukuthi uma ufuna ukucubungula uhlu olubanzi (tshela 1 kuya ku-500), kungathatha iminyaka ukuthayipha zonke izinombolo endaweni yokuqala.

Lokhu kusiletha esibonelweni sesibili esibonisa indlela yokucacisa iphuzu lokuqala nokuphela:

#! / bin / bash
ngenombolo ku- {1..10}
yenza
beka "inombolo yenombolo"
kwenziwe
phuma ku-0

Imithetho ngokuyisisekelo iyafana. Amagugu ngemuva kwegama elithi " ku" akha uhlu oluzobhekana nalo futhi inani ngalinye ohlwini lubekwa kuguquguquko (isib. Inombolo), futhi isikhathi ngasinye lapho i-loop iqala khona, izitatimende eziphakathi kokukwenza nokwenziwa zenziwa.

Umehluko oyinhloko yindlela olwahlulwa ngalo uhlu. Abakaki abalungile {} basho ngokuyinhloko ububanzi, futhi ububanzi, kulokhu, luyi-1 kuya ku-10 (amachashazi amabili ahlukanisa ukuqala nokuphela kobubanzi).

Ngakho-ke, lesi sibonelo sihamba ngenombolo ngayinye ephakathi kuka-1 no-10 futhi siphumela inombolo esibukweni kanje:

I-loop efanayo ingabhalwa kanje, nge- syntax efana nesibonelo sokuqala:

ngenombolo ku-1 2 3 4 5 6 7 8 9 10

Indlela Yokudlula Inombolo Ku-Range

Isibonelo esandulele sibonise indlela yokukhipha phakathi kwendawo yokuqala nokuphela, ngakho manje sizobuka indlela yokudlula izinombolo ebangeni.

Ake ucabange ukuthi ufuna ukuhlehlisa phakathi kuka-0 no-100 kuphela kodwa ubonisa yonke inombolo yeshumi. Isikripthi esilandelayo sibonisa ukuthi ungakwenza kanjani lokho nje:

#! / bin / bash
ngenombolo ku- {0..100..10}
yenza
beka "inombolo yenombolo"
kwenziwe
phuma ku-0

Imithetho ngokuyisisekelo iyafana. Kukhona uhlu, okuguquguqukayo, nesethi yezitatimende okufanele zenziwe phakathi kokukwenza nokwenziwa . Uhlu ngalesi sikhathi lubukeka kanje: {0..100..10}.

Inombolo yokuqala ingu-0 futhi inombolo yokugcina ingu-100. Inombolo yesithathu (10) yinani lezinto ohlwini oluzokweqa.

Isibonelo esingenhla, ke, sibonisa okukhiphayo okulandelayo:

I-Traditional Traditional Looking For Loop

Indlela ye-BASH yokubhala ye-loops ayimangalisa uma kuqhathaniswa nezinye izilimi zokuhlela.

Kodwa-ke, ungabhala i-loop ye-loop ngesitayela esifanayo nolimi lwezinhlelo zeC, kanje:

#! / bin / bash
ngoba ((inombolo = 1; inombolo <100; inombolo ++))
{
uma (($ inombolo% 5 == 0))
ke
I-echo "$ inombolo ibonakala ngu-5"
fi
}}
phuma ku-0

I-loop iqala ngokubeka inombolo eguquguqukayo ibe yi-1 (inombolo = 1 ). I-loop izoqhubeka isebenza ngenkathi inani lenani lingaphansi kwezingu-100 ( inombolo <100 ). Inani lenombolo lishintsha ngokungeza 1 kuso emva kwe-iteration ngayinye ( inombolo ++ ).

Konke phakathi kwe-curly braces kwenziwa ngokusebenzisa i-loop ngayinye.

I-bit phakathi kwe-braces ihlola inani lenombolo , lihlukanisa ngo-5, futhi lifanisa okusele kuya ku-0. Uma okusele kungu-0 khona-ke inombolo ihlukaniswa ngu-5 bese iboniswa esikrinini.

Ngokwesibonelo:

Uma ufuna ukushintsha usayizi wesinyathelo we-iteration ungakwazi ukuchibiyela isigaba senombolo ++ ukuba inombolo = inombolo + 2 , inombolo = inombolo + 5 , noma inombolo = inombolo + 10 njll.

Lokhu kunganciphisa ukuncipha + = 2 noma inombolo + = 5 .

Isibonelo Esiwusizo

Ngokuba izingodo zingenza okungaphezu kwe-iterate uhlu lwezinombolo. Ungasebenzisa ngempela ukukhishwa kweminye imiyalo njengohlu.

Isibonelo esilandelayo sibonisa indlela yokuguqula amafayela alalelwayo kusuka ku- MP3 kuya ku- WAV :

#! / bin / bash

Uhlu kulesi sibonelo yiwo wonke amafayela anokwandiswa kwe-.MP3 kufolda yamanje futhi okuguquguqukayo kuyifayela .

Umyalo we- mpg uguqula ifayela le-MP3 ku-WAV. Noma kunjalo, cishe udinga ukufaka lokhu usebenzisa umphathi wephakheji yakho kuqala.