Mar a sgrìobhas tu BASH "airson" Loop

Mar a chleachdas tu am BASH "airson" lùb ann an sgriobtagan sligean

Is e cànan sgriobtaireachd a th 'ann am BASH (a tha na àite airson Bourne Again Shell) a tha air a chleachdadh leis a' chuid as motha de shiostaman obrachaidh Linux agus UNIX.

Faodaidh tu a bhith a 'ruith àithnean BASH taobh a-staigh uinneag deireannach air an làimh eile no faodaidh tu na h-òrdughan a chur ri faidhle teacsa gus sgriobt sligean a dhèanamh.

Is e an rud math mu sgriobtaichean slige a sgrìobhadh is urrainn dhut an ruith a-rithist is a-rithist. Mar eisimpleir, smaoinich gum feum thu cleachdaiche a chur ri siostam, na ceadan aca a shuidheachadh agus an àrainneachd tòiseachaidh aca a stiùireadh. Faodaidh tu an dàrna cuid na h-òrdughan a sgrìobhadh sìos air pìos pàipeir agus an ruith mar a chuireas tu cleachdaichean ùra ris no faodaidh tu aon sgriobt a sgrìobhadh agus dìreach pas parameters a thoirt don sgriobt sin.

Tha clàran cànain mar BASH a 'dèanamh phrògraman co-ionann mar chànanan eile. Mar eisimpleir, faodaidh tu pàirmearan in-imrich a chleachdadh gus faighinn a-steach bhon mheur-chlàr agus a stòradh mar atharraichean. Faodaidh tu an uairsin fhaighinn air an sgriobt gus gnìomh sònraichte a dhèanamh stèidhichte air luach nam paramadairean ion-chuimse .

Is e prìomh phàirt de phrògraman agus cànan sgriobhaidh sam bith an comas an aon phìos còd a ruith a-rithist is a-rithist.

Tha grunn dhòighean ann còd a dhèanamh air ais (aithnichte mar lùban). San stiùireadh seo, thèid sealltainn dhut mar a sgrìobhas tu lùb "airson".

Bheir A airson lùb earrann sònraichte den chòd thairis is a-rithist. Tha iad feumail gus an urrainn do shreath de dh 'òrduighean a bhith a' ruith gus am bi suidheachadh sònraichte air a choileanadh, agus às deidh sin stad iad.

San stiùireadh seo, thèid sealltainn dhut còig dòighean air a chleachdadh airson loop taobh a-staigh script BASH.

Mus do thòisich thu

Mus tòisich thu air adhart airson eisimpleirean loop, feumaidh tu uinneag deireannach fosgladh agus lean na ceumannan seo:

  1. Cuir a-steach sgriobtaichean mkdir ( ionnsaich tuilleadh mu mkdir an seo )
  2. Cuir a-steach scripdaidhean cd (bidh seo ag atharrachadh an eòlaire gu sgriobtaichean )
  3. Cuir a-steach nano examplen.sh (far a bheil n an eisimpleir air a bheil thu ag obair)
  4. Cuir a-steach an sgriobt
  5. Brùth CTRL + O airson sàbhaladh agus CTRL + X gus fàgail
  6. Rach bash examplen.sh (a-rithist, le n mar an eisimpleir a tha thu ag obair còmhla)

Mar a thogas tu tro liosta

#! / bin / bash
airson àireamh ann an 1 2 3 4 5
dèan
echo $ àireamh
deiseil
exit 0

Tha an dòigh BASH a bhith a 'cleachdadh loops "airson" rudeigin eadar-dhealaichte bhon dòigh anns a bheil a' mhòr-chuid de phrògraman eile agus cànanan sgriobtaireachd a 'làimhseachadh lùban "airson". Leigamaid a-mach an sgriobt sìos ...

Ann am BASH "airson" tarraing a h-uile càil, thèid na h-aithrisean eadar dèan agus dèan a dhèanamh aon uair airson gach nì san liosta.

Anns an eisimpleir gu h-àrd, is e an liosta a h-uile dad a thig às dèidh na facail ann (ie 1 2 3 4 5).

Gach uair a bhios an lùb a 'dol air adhart, thèid an ath luach san liosta a chur a-steach don chaochlaideach a chaidh ainmeachadh an dèidh am facal "airson" . Anns an lùib gu h-àrd, tha an caochladair air a h-ainmeachadh àireamh .

Tha an aithris mac-samhail air a chleachdadh gus fiosrachadh a thaisbeanadh don sgrion.

Mar sin, tha an eisimpleir seo a 'toirt na h-àireamhan 1 gu 5 agus a' toirt a-mach iad aon le aon gu an sgrìn:

Mar a nì thu lùbadh eadar tòiseachaidh agus ceann-uidhe

Is e an trioblaid leis an eisimpleir gu h-àrd ma tha thu airson liosta nas motha a dheasachadh (deir 1 gu 500), bheireadh e aoisean a bhith a 'sgrìobhadh nan àireamhan uile sa chiad àite.

Bheir seo sinn chun an dàrna eisimpleir a tha a 'sealltainn mar a chomharraicheas tu toiseach is puing-crìochnachaidh:

#! / bin / bash
airson àireamh ann {1..10}
dèan
mac-samhail "$ number"
deiseil
exit 0

Tha na riaghailtean ann an aon rud. Bidh na luachan às deidh am facal " in" a ' dèanamh suas an liosta gus a dhol troimhe agus tha gach luach san liosta air a chur anns a' chaochlaideach (ie àireamh), agus gach turas a thèid an lùb air adhart, thèid na h-aithrisean eadar dèan agus dèan a dhèanamh .

Is e am prìomh eadar-dhealachadh mar a tha an liosta air a chruthachadh. Gu h-àraid, tha na bracaidean lùbach {} a 'comharrachadh raon, agus tha an raon, anns a' chùis seo, 1 gu 10 (tha an dà dotag eadar-dhealaichte toiseach is deireadh raon).

Mar sin, bidh an eisimpleir seo a 'ruith tro gach àireamh eadar 1 agus 10 agus a' toirt seachad na h-àireimh chun an sgrion mar a leanas:

Dh'fhaodadh an aon lùib a bhith air a sgrìobhadh mar seo, le co - chòrdadh co- ionann ris a 'chiad eisimpleir:

airson àireamh ann an 1 2 3 4 5 6 7 8 9 10

Mar a sheallas tu àireamhan ann an raon

Sheall an t-eisimpleir roimhe mar a chuireas tu ceangal eadar toiseach agus puing-crìochnachaidh, mar sin a-nis seallaidh sinn air mar a chuireas tu àireamhan air falbh san raon.

Smaoinich gu bheil thu airson leum eadar 0 agus 100 ach nach eil ach a 'sealltainn a h-uile deicheamh àireamh. Tha an sgriobt a leanas a 'sealltainn mar a nì thu sin dìreach:

#! / bin / bash
airson àireamh ann an {0..100..10}
dèan
mac-samhail "$ number"
deiseil
exit 0

Tha na riaghailtean ann an aon rud. Tha liosta, caochlaideach, agus seata de aithrisean ri dhèanamh eadar dèan agus dèan . Seo an liosta an-dràsta: {0..100..10}.

Is e 0 a 'chiad àireamh agus is e an àireamh deireannach 100. Is e an treas àireamh (10) an àireamh de nithean anns an liosta a leigeas e.

Tha an eisimpleir gu h-àrd, mar sin, a 'taisbeanadh an toradh a leanas:

A Barrachd Thraidiseanta airson Loop

Tha an dòigh sgrìobhaidh BASH airson lùban beagan neònach an coimeas ri cànanan prògraman eile.

Faodaidh tu, ge-tà, sgrìobhadh airson lùb ann an stoidhle coltach ris an cànan prògramadh C, mar seo:

#! / bin / bash
airson ((àireamh = 1; àireamh <100; àireamh ++))
{
ma (($ àireamh% 5 == 0))
an uairsin
mac-mac "$ number air a sgaradh le 5"
fi
}
exit 0

Bidh an lùb a 'tòiseachadh le bhith a' suidheachadh an àireamh caochlaideach gu 1 (àireamh = 1 ). Bidh an lùib a 'cumail a' dol fhad 'sa tha luach àireamh nas lugha na 100 ( àireamh <100 ). Bidh luach an àireamh ag atharrachadh le bhith a 'cur 1 ris an dèidh gach ath-aiseag ( àireamh ++ ).

Bidh a h-uile càil eadar na bratan buairidh air a dhèanamh tro gach gearradh den lùib.

Bidh an tomhas eadar na brathan a 'dèanamh sgrùdadh air luach àireamh , ga roinn le 5, agus a' dèanamh coimeas eadar an còrr gu 0. Ma tha an còrr 0 an uairsin, tha an àireamh air a sgaradh le 5 agus an uair sin tha e air a thaisbeanadh air an sgrìn.

Mar eisimpleir:

Ma tha thu airson meud ceum an ath-atharrachaidh atharrachadh, faodaidh tu earrann number ++ atharrachadh mar àireamh = àireamh + 2 , àireamh = àireamh + 5 , no àireamh = àireamh + 10 etc.

Faodar seo a lùghdachadh tuilleadh gu àireamh + = 2 no àireamh + = 5 .

Eisimpleir practaigeach

Is urrainn dha lùban barrachd a dhèanamh na liostaichean de àireamhan a thoirt air falbh. Faodaidh tu a bhith a 'cleachdadh toradh òrdughan eile mar an liosta.

Tha an eisimpleir a leanas a 'sealltainn mar a nì thu faidhlichean claistinn bho MP3 gu WAV :

#! / bin / bash

Is e an liosta san eisimpleir seo gach faidhle leis an leudachadh .MP3 anns a 'phasgan làithreach agus tha an caochlaideach na fhaidhle .

Bidh an stiùireadh mpg ag atharrachadh faidhle MP3 gu WAV. Ge-tà, is dòcha gum feum thu seo a stàladh leis a 'mhanaidsear paca agad an toiseach.