Sut I Ysgrifennu BASH "ar gyfer" Llwytho "

Sut i ddefnyddio'r BASH "ar gyfer" dolen mewn sgriptiau cregyn

Mae BASH (sy'n sefyll ar gyfer Bourne Again Shell) yn iaith sgriptio a ddefnyddir gan y rhan fwyaf o systemau gweithredu Linux a UNIX.

Gallwch redeg gorchmynion BASH o fewn ffenestr derfynell ar ôl y llall neu gallwch ychwanegu'r gorchmynion i ffeil testun i gynhyrchu sgript cregyn.

Y peth gwych am ysgrifennu sgriptiau cregyn yw y gallwch eu rhedeg unwaith eto. Er enghraifft, dychmygwch fod angen i chi ychwanegu defnyddiwr i system, gosod eu caniatâd a rheoli eu hamgylchedd cychwyn. Gallwch naill ai ysgrifennu'r gorchmynion ar ddarn o bapur a'u rhedeg wrth i chi ychwanegu defnyddwyr newydd neu gallwch ysgrifennu sgript unigol a dim ond pasio paramedrau i'r sgript honno.

Mae gan ieithoedd sgriptio megis BASH ddeunyddiau tebyg i raglenni fel ieithoedd eraill. Er enghraifft, gallwch ddefnyddio paramedrau mewnforio i gael mewnbwn o'r bysellfwrdd a'u storio fel newidynnau. Yna gallwch chi gael y sgript i gyflawni camau penodol yn seiliedig ar werth y paramedrau mewnbwn .

Rhan allweddol o unrhyw raglennu a iaith sgriptio yw'r gallu i redeg yr un darn o god dro ar ôl tro.

Mae nifer o ffyrdd i ailadrodd cod (a elwir hefyd yn ddolenni). Yn y canllaw hwn, dangosir sut i ysgrifennu dolen "ar gyfer".

Mae A ar gyfer dolen yn ailadrodd rhan benodol o'r cod drosodd. Maent yn ddefnyddiol fel y gall cyfres o orchmynion barhau i redeg nes bod cyflwr penodol yn cael ei fodloni, ac ar ôl hynny byddant yn stopio.

Yn y canllaw hwn, dangosir i chi bum ffordd o ddefnyddio'r dolen mewn sgript BASH.

Cyn Cychwyn

Cyn i chi ddechrau ar gyfer enghreifftiau dolen, bydd angen i chi agor ffenestr derfynell a dilyn y camau hyn:

  1. Rhowch sgriptiau mkdir ( dysgu mwy am mkdir yma )
  2. Rhowch sgriptiau cd (mae hyn yn newid y cyfeiriadur i sgriptiau )
  3. Rhowch nano examplen.sh (lle n yw'r enghraifft rydych chi'n gweithio arno)
  4. Rhowch y sgript
  5. Gwasgwch CTRL + O i arbed a CTRL + X i ymadael
  6. Rhedeg bash examplen.sh (eto, gyda n yw'r enghraifft rydych chi'n gweithio gyda hi)

Sut i Lwyddo Trwy Rhestr

#! / bin / bash
am rif yn 1 2 3 4 5
gwnewch
adleisio $ rhif
wedi'i wneud
ymadael 0

Mae ffordd BASH o ddefnyddio dolenni "ychydig" yn wahanol i'r ffordd y mae'r rhan fwyaf o raglenni rhaglenni a ieithoedd sgriptio eraill yn trin dolenni "ar gyfer". Gadewch i ni dorri'r sgript i lawr ...

Mewn BASH "ar gyfer" dolen i gyd, mae'r datganiadau rhwng gwneud a gwneud yn cael eu perfformio unwaith ar gyfer pob eitem yn y rhestr.

Yn yr enghraifft uchod, mae'r rhestr yn bopeth sy'n dod ar ôl y gair (hy 1 2 3 4 5).

Bob tro y bydd y dolen yn mynd i mewn, caiff y gwerth nesaf yn y rhestr ei fewnosod yn y newidyn a bennir ar ôl y gair "for" . Yn y dolen uchod, gelwir y newidyn yn rhif .

Defnyddir y datganiad adleisio i arddangos gwybodaeth i'r sgrin.

Felly, mae'r enghraifft hon yn cymryd y rhifau 1 i 5 ac yn eu hallbynnau un wrth un i'r sgrin:

Sut i Lwyddo Rhwng Cychwyn a Pwynt Diwedd

Y drafferth gyda'r enghraifft uchod yw, os ydych am brosesu rhestr fwy (dywed 1 i 500), byddai'n cymryd oedrannau i deipio'r holl rifau yn y lle cyntaf.

Mae hyn yn dod â ni i'r ail enghraifft sy'n dangos sut i bennu pwynt cychwyn a diwedd:

#! / bin / bash
am rif yn {1..10}
gwnewch
adleisio "$ rhif"
wedi'i wneud
ymadael 0

Mae'r rheolau yn y bôn yr un peth. Mae'r gwerthoedd ar ôl y gair " in" yn gwneud y rhestr i'w hanfon drosto, a rhoddir pob gwerth yn y rhestr yn y newidyn (hy rhif), a phob tro y bydd y dolen yn mynd i mewn, mae'r datganiadau rhwng gwneud a gwneud yn cael eu perfformio.

Y prif wahaniaeth yw'r ffordd y mae'r rhestr yn cael ei ffurfio. Mae'r bracedi bras {} yn y bôn yn dynodi ystod, ac mae'r ystod, yn yr achos hwn, yn 1 i 10 (mae'r ddau dot ar wahān i ddechrau a diwedd ystod).

Mae'r enghraifft hon, felly, yn rhedeg trwy bob rhif rhwng 1 a 10 ac mae'n allbwn y rhif i'r sgrin fel a ganlyn:

Gellid bod yr un dolen wedi ei ysgrifennu fel hyn, gyda chystrawen yr un fath â'r enghraifft gyntaf:

am rif yn 1 2 3 4 5 6 7 8 9 10

Sut i Symud Niferoedd mewn Ystod

Dangosodd yr enghraifft flaenorol sut i dolen rhwng man cychwyn a phenderfyniad, felly erbyn hyn byddwn yn edrych ar sut i ddileu rhifau yn yr ystod.

Dychmygwch eich bod am dolen rhwng 0 a 100 ond dim ond dangos pob degfed rhif. Mae'r sgript ganlynol yn dangos sut i wneud hynny:

#! / bin / bash
am rif yn {0..100..10}
gwnewch
adleisio "$ rhif"
wedi'i wneud
ymadael 0

Mae'r rheolau yn y bôn yr un peth. Mae rhestr, newidyn, a set o ddatganiadau i'w pherfformio rhwng gwneud a gwneud . Mae'r rhestr hon yn edrych fel hyn: {0..100..10}.

Y rhif cyntaf yw 0 a'r rhif olaf yw 100. Y trydydd rhif (10) yw nifer yr eitemau yn y rhestr y bydd yn sgip.

Mae'r enghraifft uchod, felly, yn dangos yr allbwn canlynol:

Boc yn edrych yn fwy traddodiadol

Mae'r ffordd ysgrifennu BASH ar gyfer dolenni ychydig yn rhyfedd o'i gymharu ag ieithoedd rhaglennu eraill.

Gallwch, fodd bynnag, ysgrifennu am dolen mewn arddull debyg i'r iaith raglennu C, fel hyn:

#! / bin / bash
ar gyfer ((rhif = 1; rhif <100; rhif ++))
{
os (($ number% 5 == 0))
yna
adleisio "$ number yn divisible gan 5"
fi
}
ymadael 0

Mae'r ddolen yn cychwyn trwy osod y rhif amrywiol i 1 (rhif = 1 ). Bydd y ddolen yn cadw iterating tra bod gwerth rhif yn llai na 100 ( rhif <100 ). Mae gwerth y rhif yn newid trwy ychwanegu 1 iddo ar ôl pob anadliad ( rhif ++ ).

Perfformir popeth rhwng y braciau bras trwy bob ailadrodd y dolen.

Mae'r rhan rhwng y braces yn gwirio gwerth rhif , yn ei rannu â 5, ac yn cymharu'r gweddill i 0. Os yw'r gweddill yn 0 yna mae'r rhif yn cael ei rannu â 5 ac yna caiff ei arddangos ar y sgrin.

Er enghraifft:

Os ydych chi eisiau newid maint cam yr anadliad, gallwch ddiwygio'r adran rhif ++ i fod yn rhif = rhif + 2 , rhif = rhif + 5 , neu rif = rhif + 10 etc.

Gellir lleihau hyn ymhellach i rif + = 2 neu rif + = 5 .

Enghraifft Ymarferol

Ar gyfer dolenni gall wneud mwy na iterate rhestrau o rifau. Gallwch ddefnyddio allbwn gorchmynion eraill fel y rhestr mewn gwirionedd.

Mae'r enghraifft ganlynol yn dangos sut i drosi ffeiliau sain o MP3 i WAV :

#! / bin / bash

Y rhestr yn yr enghraifft hon yw pob ffeil gyda'r estyniad .MP3 yn y ffolder cyfredol ac mae'r newidyn yn ffeil .

Mae'r gorchymyn mpg yn trosi'r ffeil MP3 yn WAV. Fodd bynnag, mae'n debyg y bydd angen i chi osod hyn gan ddefnyddio'ch rheolwr pecyn yn gyntaf.