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:
- Kenya mangolo a mkdir ( ithute ho eketsehileng ka mkdir mona )
- Kenya likarolo tsa cd (sena se fetola sebopeho ho mangolo )
- Kenya nano examplen.sh (moo n ke mohlala oo o sebetsang ho oona)
- Kenya script
- Tobetsa CTRL + O ho boloka le CTRL + X ho tsoa
- 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:
- 1
- 2
- 3
- 4
- 5
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:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
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:
- 0
- 10
- 20
- 30
- 40
- 50
- 60
- 70
- 80
- 90
- 100
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:
- 5 e arohane ka 5
- 10 e arohana ka 5
- 15 e arohane ka 5
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.