Kamoo U ka Ngolang Bash WHILE-Loops

Melao, Syntax, le Mehlala

O ka phethisa ho latellana ha litaelo ka ho li ngolla ka faele ea script ebe oe qeta.

Faele ea script ke feela faele ea litokomane, hangata e nang le lengolo la. File extension, e nang le litaelo tsa litaelo tse ka boela tsa etsoa ho tloha molaong oa molaetsa ( shell ).

Le hoja Loop e le Mehlala

Ka tlaase mona ke mohlala oa sekhukhu se seng. Ha e phethoa, faele ena ea script e tla hatisa lintlha 1 ho ea ho 9 skrineng. Tlhaloso e ntseng e le teng e u fa liphetoho tse eketsehileng bakeng sa ho bonts'a boemo ba ho felisoa ho feta ho loop .

#! / bin / bash count = 1 ha [$ count -le 9] e etsa "$ count" ho robala 1 ((count ++)) e entseng

Ka mohlala, o ka etsa hore script e fetileng e be sephaka se sa feleng ka ho tlohela polelo e fetisisang "((count ++)):

#! / bin / bash count = 1 ha [$ count -le 9] e etsisa "$ count" boroko bo 1 bo entseng

Polelo ea "boroko" e emisa ho phethahatsoa ka motsotsoana o le mong ka lekhetlo le leng le le leng. Sebelisa khetho ea keyboard ea Ctrl + C ho felisa tshebetso.

U ka boela ua theha sekhukhu se sa lekanyetsoang ka ho beha kolone e le boemo:

#! / bin / bash count = 1 ha e ntse e: etsa joalo "$ count" ho robala 1 ((count ++)) e entseng

E le hore u sebelise maemo a mangata ka nako e sa lekanyetsoang, u tlameha ho sebelisa noto ea bobeli ba lisekoere:

palo = 1 e entseng = 0 ha [[$ count -le 9] && [$ done == 0]] etsa joalo ho "$ count" ho robala 1 ((count ++)) haeba [$ count == 5]; joale chelete e entseng = 1 e felile

Lengolong lena, se feto-fetohileng se "entseng" se qalisoa ho 0 mme se behoa ho 1 ha palo e fihla ho 5. Boemo ba lits'ebeletso bo bolela hore ha nako e ntse e ea e tla tsoelapele hafeela "ho bala" e le tlase ho tse robong 'me "ho etsoa" e lekana ho ea ho zero. Ka hona likonopo lia tsoa ha palo e lekana le 5.

"&&" e bolela ho utloahala "le" le "|" e bolela ho utloahala "kapa".

Tlhaloso e 'ngoe bakeng sa li-conjunctions "le" le "kapa" maemo a "-a" le "-o" a nang le litekete tse sekoti. Boemo bo ka holimo:

[[$ count -le 9] && [$ done == 0]]

... e ka ngoloa hape e le:

[$ count -le 9] -a [$ done == 0]

Ho bala faele ea litokomane ho tloaelehile ho etsoa ka nako e khutšoanyane. Mohlala o latelang, mongolo oa bash o bala li kahare molaong ka mohala oa faele e bitsoang "inventory.txt:"

FILE = tlhahlobo.txt exec 6

Mokha oa pele o beha lebitso la faele ea kenang mofuteng oa "FILE". Mokha oa bobeli o boloka "tlhahiso e tloaelehileng" ho hlalosa file "6" (e ka ba bohlokoa leha e le bofe pakeng tsa 3 le 9). Sena se etsoa e le hore "tlhahiso e tloaelehileng" e ka tsosolosoa ho hlalosa "file" "qetellong ea script" bona polelo "exec 0 Moong oa boraro faele ea ho kenya e fanoa ho file descriptor" 0, "e sebelisitsoeng bakeng sa tlhahiso e tloaelehileng. Polelo e "balang" e balla mola o tsoang fosheneng ka mongolo o mong le o mong ebe oa o fa mofuteng oa "line1".

E le hore u ka tsoa nakoana pele u tsoa, ​​u ka sebelisa polelo ea khefu e kang ena:

palo = 1 e entseng = 0 ha [$ count -le 9] e lekana le "$ count" ho robala 1 ((count ++)) haeba [$ count == 5] o senya echo e fetiloeng

Mantsoe a khethollo a tlōla tekanyetso ea lenaneo ho ea qetellong ha a ntse a lla le ho phetha lipolelo leha e le life tse latelang. Tabeng ena, polelo e reng "echo e felile."

Ka lehlakoreng le leng, polelo e tsoelang pele, e qeta nako e setseng ea nako ea nako e telele e hlahisang lekhetlo le leng le le leng 'me e qhomela ka ho toba letotong le latelang:

palo = = etsoa = 0 ha [$ count -le 9] u robala 1 ((bala +++) haeba [$ count == 5] u tsoela pele ho bala "$ count" e entseng echo e felile

Tabeng ena, polelo ea "tsoelangpele" e etsoa ha "ho bala" ho feto-fetoha ho fihla 5. Sena se bolela polelo e latelang (echo "$ count") e sa etsoang ka mokhoa ona (ha bohlokoa ba "bala" ke 5).