Kamoo U ka Ngolang BASH "bakeng sa" Loop

Mokhoa oa ho sebelisa BASH "bakeng sa" loop ka shell scripts

BASH (e bolelang Bourne Again Shell) ke puo e ngotsoeng e sebelisoang ke mananeo a mangata a Linux le a UNIX-based.

U ka matha litaelo tsa BASH ka har'a fensetere e fapaneng ka mor'a e 'ngoe kapa u ka eketsa litaelo ho file e hlalositsoeng ho hlahisa script shell.

Ntho e kholo ka ho ngola mangolo a mangolo ke hore u ka ba matha hangata. Ka mohlala, ak'u nahane hore u hloka ho kenya mochine tsamaisong, beha litumello tsa bona le ho laola sebaka sa bona sa pele. O ka ngola litaelo pampiring mme o li tsamaise ha o ntse o eketsa basebedisi ba bacha kapa o ka ngola script e le 'ngoe mme o fetisa lintlha tse itseng ka script.

Lipuo tse ngotsoeng ka Mangolo tse kang BASH li na le merero e tšoanang ea ho haha ​​joaloka lipuo tse ling. Ka mohlala, o ka sebelisa litekanyo tsa ho kenya ho kenya letsoho ho tloha lebokoseng ebe oa li boloka e le mefuta-futa. Joale o ka fumana script ho etsa ketso e itseng ho latela boleng ba litekanyetso tsa ho kenya .

Karolo ea bohlokoa ea lenaneo leha e le lefe la lenaneo le puo e ngotsoeng ke bokhoni ba ho sebelisa khoele e tšoanang hangata.

Ho na le mekhoa e mengata ea ho pheta khoutu (e tsejoang hape e le loops). Ka tataiso ena, u tla bontšoa hore na u ka ngolla "bakeng sa" hokae.

A ho loop e pheta karolo e itseng ea khoutu khafetsa. Li na le thuso e le hore letoto la litaelo li lule li matha ho fihlela boemo bo itseng bo fihlile, ka mor'a moo ba tla emisa.

Mo tataisong ena, o tla bontšoa litsela tse hlano tsa ho sebelisa sekoahelo ka har'a script BASH.

Pele e qala

Pele o qala ka mehlala ea litheolelo, u lokela ho bula fensetere ea liphallelo mme u latele mehato ena:

  1. Kenya mangolo a mkdir ( ithute ho eketsehileng ka mkdir mona )
  2. Kenya likarolo tsa cd (sena se fetola sebopeho ho mangolo )
  3. Kenya nano examplen.sh (moo n ke mohlala oo o sebetsang ho oona)
  4. Kenya script
  5. Tobetsa CTRL + O ho boloka le CTRL + X ho tsoa
  6. Matha bash examplen.sh (hape, ka ho ba mohlala oo u sebetsang le oona)

Tsela ea ho Rata ka Lethathamo

#! / bin / bash
bakeng sa nomoro ka 1 2 3 4 5
etsa joalo
echo $ nomoro
e felile
tsoa ho 0

Tsela ea BASH ea ho sebelisa "bakeng sa" litsie e batla e fapane le tsela eo lipuo tse ling tse ngata le lipuo tse ngotsoeng ka eona li sebetsang "bakeng sa" loops. A re qheqhe script fatše ...

Ka BASH "bakeng sa" lintlheng tsohle, lipolelo pakeng tsa ho etsa le ho etsoa li etsoa hang ka ntho e 'ngoe le e' ngoe ethathamong.

Mohlala o ka holimo, lethathamong ke ntho e 'ngoe le e' ngoe e tlang ka mor'a lentsoe (e leng 1 2 3 4 5).

Nako le nako ha lekhetho le sebetsa, boleng bo latelang lethathamong bo kenngoa ho feto-fetoha ho boletsoeng ka mor'a lentsoe "bakeng sa" . Molaung o ka holimo, se feto-fetohileng se bitsoa nomoro .

Polelo ea echo e sebelisetsoa ho bonts'a tlhahisoleseding ho skrine.

Ka hona, mohlala ona o nka litekanyo tsa 1 ho ea ho tse 5 'me o li hlahisa ka bonngoe ho skrine:

Tsela ea ho Lula pakeng tsa ntlha ea pele le ea ho qetela

Bothata ka mohlala o boletsoeng ka holimo ke hore haeba u batla ho etsa lenane le leholo (bolela 1 ho ea ho 500), ho tla nka lilemo ho ngola lintlha tsohle pele.

Sena se re tlisa mohlala oa bobeli o bontšang kamoo ho ka hlalosang qalo le qetello:

#! / bin / bash
bakeng sa nomoro ka {1..10}
etsa joalo
echo "$ nomoro"
e felile
tsoa ho 0

Melao ha e le hantle e tšoana. Melao-motheo ka mor'a hore lentsoe " ho" e be lethathamo le hlahang holimo le lenane le leng le le leng lethathamong le kenngoa ho feto-fetoha (e leng nomoro), 'me nako le nako ha lekhetho le sebetsa, lipolelo pakeng tsa ho etsa le ho etsoa lia etsoa.

Phapang e khōlō ke tsela eo lenane le thehoang ka eona. Li-brackets tse pota-potileng {} ha e le hantle li bolela marang-rang, 'me lehlakoreng lena, ho le joalo, ke ea 1 ho ea ho 10 (lihlopha tse peli li arola qalo le qetello ea lehlakoreng).

Ka mohlala, mohlala ona o feta palo e 'ngoe le e' ngoe pakeng tsa 1 le ea 10 'me o etsa palo ho ea skrineng ka tsela e latelang:

Sepheo se tšoanang se ne se ka be se ngotsoe joalo, se nang le syntax e tšoanang le mohlala oa pele:

bakeng sa palo ka 1 2 3 4 5 6 7 8 9 10

Tsela ea ho tlohela Numere ho Range

Mohlala o fetileng o bontšitse hore na o ka hokae pakeng tsa qalo le qetello, ka hona joale re tla sheba mokhoa oa ho tlōla linomoro ho palo.

Ak'u inahanele u batla ho loop pakeng tsa 0 le 100 empa u bontša feela palo e 'ngoe le e' ngoe ea leshome. Script e latelang e bontša hore na u ka etsa seo joang:

#! / bin / bash
bakeng sa nomoro ka {0..100..10}
etsa joalo
echo "$ nomoro"
e felile
tsoa ho 0

Melao ha e le hantle e tšoana. Ho na le lethathamo, phapang, le sete sa lipolelo tse lokelang ho etsoa pakeng tsa ho etsa le ho etsoa . Lethathamo lena le shebahala mona: {0..100..10}.

Nomoro ea pele ke 0 'me nomoro ea ho qetela ke 100. Nomoro ea boraro (10) ke palo ea lintho tse lenaneng leo e tla tlōla.

Ka mohlala, mohlala o ka holimo o bontša lintho tse latelang:

Tlhaho e Fetisisang ea Tloaeleho

Tsela ea BASH ea ho ngola bakeng sa loops ha e makatse ha e bapisoa le lipuo tse ling tsa lenaneo.

Leha ho le joalo, u ka ngola sekoahelo bakeng sa mokhoa o tšoanang le puo ea C ea puo, joaloka ena:

#! / bin / bash
bakeng sa ((nomoro = 1; nomoro <100; nomoro ++))
{
haeba (($ nomoro% 5 = = 0))
joale
echo "$ nomoro e arohane ka 5"
fi
}}
tsoa ho 0

Sekhahla se qala ka ho beha nomoro e fapaneng ho isa ho 1 (nomoro = 1 ). Sehlopha se tla tsoela pele se ntse se tsoela pele ha lenane la palo e le tlase ho 100 ( nomoro <100 ). Bohloko ba palo bo fetoha ka ho eketsa 1 ho eona ka mor'a hore e be le litekanyetso ka 'ngoe ( nomoro ++ ).

Ntho e 'ngoe le e' ngoe e pakeng tsa li-curly curly e etsoa ka sekhahla se seng le se seng.

Palo pakeng tsa braces e hlahloba boleng ba nomoro , e e arola ka 5, mme e bapisa se setseng ho 0. Haeba setseng e le 0 joale palo e aroloa ka 5 mme e ntan'o bontšoa skrineng.

Ka mohlala:

Haeba u batla ho fetola boholo ba mehato ea iteration u ka fetola karolo ea nomoro ++ ho ba nomoro = nomoro + 2 , nomoro = nomoro + 5 , kapa nomoro = nomoro + 10 joalo-joalo.

Sena se ka fokotsoa ho feta palo + = 2 kapa palo + = 5 .

Mohlala o Motle

Bakeng sa li-loops li ka etsa ho feta ho bala lenane la linomoro. U ka sebelisa phallo ea litaelo tse ling e le lenane.

Mohlala o latelang o bonts'a tsela ea ho fetola lifaeletso tsa molumo ho tloha MP3 ho WAV :

#! / bin / bash

Lethathamo la mohlala ona ke faele e 'ngoe le e' ngoe e nang le melaetsa ea .MP3 ho fensetere ea hona joale 'me e feto-fetohileng ke file .

Molao oa mpg o fetolela file ea MP3 ho WAV. Leha ho le joalo, mohlomong u hloka ho kenya sena ho sebelisa mookameli oa phaphalo ea hau pele.