Çawa BASH BIG ji bo "Loop" binivîse

Çawa bişkojka BASH ji bo "loop" li pelên şelê bikar bînin

BASH (ku ji bo Bour Again Again Bourne Against) tê bikaranîna zimanek nivîskî ye, ji hêla pergala xebitandina xebatên Linux -ê û Linux -UNIX-ê tê bikaranîn.

Hûn dikarin BASH ji hundurê duyemîn a terminal-a-sê-an-ê ve bimeşînin, an jî hûn ji rêzikên pelê şîfreyek pelan hilberînin emirên xwe zêde bike.

Tiştek mezin li ser pirtûkên nivîskî yên nivîskî ye ev e ku hûn dikarin dîsa careke din bigirin. Ji bo nimûne fikra ku hûn hewce ne ku bikarhênerek pergalek zêde bikin, destûra wan danîn û hawirdora xwe dest pê bikin. Hûn dikarin li ser perçeyek kaxezan binivîsînin û wekî ku hûn bikarhênerên nû zêde bikin yan jî hûn dikarin bi tenê pirtûkxaneyê binivîse û tenê pîvanên xwe di vê nivîsê de derbas bibin.

Zimanên Çandî yên wekî BASH jî bernameyên wekî zimanên din çêbikin. Wekî nimûne, hûn dikarin parametersên importê bikar bînin ku ji veguherîna veguherîna klavyeyê bigirin û wan wek guherînan bikin. Hingê hûn dikarin pirtûkxaneyê bikin ku çalakiya hin tiştek li ser nirxê pîvana input-ê pêk bînin .

Beşê serekî ya ku bernameyek zimanî û nivîsandina fîlmkirinê ye, ew e ku ew e ku kodê bi heman rengê veguhestin.

Gelek awayên ku ji kodê dubare bikin (wekî loops têne zanîn). Di vê rêberê de, hûn ê çawa çawa pişka "for" re nivîsîn.

A ji bo qaîdekek hinek kodê kodê û ser veguhestin. Ew bi awayekî sûd e ku ji rêzikên rêzikên ku di rewşeke taybet de tête hevdîtin pêk tê, paşê wê ew bisekinin.

Di vê rêberê de, hûn ê pênc awayên ku ji bo qonaxa BASH-ê ve tê bikaranîn.

Beriya destpêkirina

Berî ku hûn ji bo mînakên loopê dest pê bikin, divê hûn pencereya termînal vekin û divê ev pêngav bikin.

  1. Peyvên mkdir binivîse ( zêdetir li ser mkdir fêr bibin )
  2. Cd scriptên binivîse (ev peldanka pirtûkan veguherîne biguherînin )
  3. Nano testplen.sh binivîse (( n li nimûne ku tu li ser xebatê ye)
  4. Vê nivîskî binivîse
  5. CTRL + O ji bo xilas bike û CTRL + X ji derveyî vekin
  6. Bêguman testplen.sh (dîsa, bi nimûne nimûne ku hûn bi xebatê re)

Li ser Lûqa Çawa

#! / bin / bash
ji bo hejmara 1 2 3 4 5
bikin
$ number echo
kirin
derkeve 0

BASH bi awayekî loops ji bo "lênêrîna" ji bo bikaranîna piraniya bernameyên din û rêbazên nivîskî veguherîn hinek cûda ye. Let's script script break!

Li BASH "ji bo" hemî, daxuyaniyên di navbera kirinê de û careke din ji bo her tişt di lîsteyê de pêk tê kirin.

Di nimûneya jorîn de, lîsteya her tiştê ku piştî peyva ( di heman demê de 2 2 3 4 5) tê de tête ye.

Her carê her gavê veguhestin, li ser lîsteya bêtir di lîsteyê de ji navnîşa peyva "for" diyar kir ku di nav deverê de diyar kirin. Di pişka jorîn de, guherînek hejmar tê gotin.

Di daxuyaniyê de ev eşkere tê bikaranîn ku agahdariyê li ser screenê.

Ji ber vê yekê, ev nimûne 1 heya 5 anîn û ew yek ji yek bi screenê ve dike.

Çawa Pevçûnê Di navbera Dema Destpêk û Dawîn de

Pirsgirêka mînakek jorîn e ku hûn dixwazin lîsteya mezintir bigirin ((1 ji 500) bibêjin, ew ê temaşe bike ku hemî hejmarek di hejmara yekemîn de binivîse.

Ev me ji me re mînakek duyemîn dide ku nîşan dide ka çawa çawa destnîşan û destpêka dawiyê diyar bike:

#! / bin / bash
Ji bo hejmara {1..10}
bikin
echo "$ number"
kirin
derkeve 0

Qanûn bingehîn heman e. Li gorî nirxên peyva " in" lîsteya ku ji hêla veguhastin û her hejmar di lîsteyê de (ango hejmara) hebe, û her cara herwiha vedixwe, daxuyaniyên di navbera çi kirin û pêk têne kirin.

Cûdahiya sereke rêberê lîsteyê pêk tê ye. Bermalên curikên {}} bi awayekî vegotin û rêzek, di vê rewşê de, ji 1 heta 10 (du duyên duyemîn destpêk û dawiya rêjeyê cuda ye).

Ji ber vê yekê, heya, di nav 1 û 10 de her hejmara navnîşan diçe û hejmareke hejmarê li ser vîdyoyê hilbijêre:

Di heman heman loopê de mîna vê yekê nivîsandibû, bi mînakek bi heman rengî yekem a syntax re :

ji bo hejmara 1 2 3 4 5 6 7 8 9 10

Çawa Nikarim Numbers in a Range

Nimûne berê berê nîşan kir ku di navbera destpêka û dawiya dawiyê de heya we, hingê em ê bibînin ka çend hejmarên ku di nav sînor de bikişînin.

Hûn difikirin ku hûn di navbera 0 û 100 de di navbera 100 û nîjeran de lêbigere, lê tenê hejmareke her tenth nîşan bidin. Peyva jêrîn nîşan dide ku çawa çawa bikin?

#! / bin / bash
Ji bo hejmara {0..100..10}
bikin
echo "$ number"
kirin
derkeve 0

Qanûn bingehîn heman e. Li lîsteya navîn, cûrek, û rêzikek xuyakirin ku di navbera kirinê de pêk anîn hene . Lîsteya vê demê de ev xuya dike: {0..100..10}.

Hejmarek yekem e 0 û hejmara dawîn 100 e. Hejmarê sêyemîn (10) hejmara lîsteyê li lîsteyê ye ku ew diçin.

Ji ber vê yekê, jimara hilberê jêrîn nîşan dide:

Zêdetir Pirrjimar Pirrjimar Pirrjimara Loop

Riya BASH ya nivîsandina loopsê dema ku zimanên bernameyên din ên din digirin.

Hûn dikarin, ji bo qonaxa heman şêweyê ji bo bernameya C programming de binivîse, wek vê yekê:

#! / bin / bash
ji bo ((nirx = 1; hejmara <100; hejmara ++))
{
Eger (($ $ 5% == 0))
paşan
echo "$ hejmara 5 bi veguherîn e"
fi
}
derkeve 0

Loop dest pê dike ku hejmara hejmara 1 (hejmar = 1 ) ava dike. Pîvan wê wê vedigire û heke nirxa hejmara hejmara 100 ( hejmara <100 ) kêmtir e. Hêjeya hejmarê her paşerojê ( hejmara ++ ) piştî 1 jê re zêde bike.

Her tiştî di navbera herikên kûçikan de bi her revandin ya laşê têne kirin.

Hin di navbera braces de hejmarên hejmarek kontrol dike, û ji hêla 5 ve veqetîne, û lihevhatinê lihevhatinê 0. Ger pêdivî ye ku paşê ye. Hingê hejmara 5 ji hêla vekirî ve tête vekirî ye û paşê li ser screenê tê nîşandan.

Bo nimûne:

Heke hûn dixwazin berbi qonaxa pîvanê biguherînin, hûn dikarin hejmara ++ beşa hejmara = hejmara + 2 , hejmara = hejmara + 5 , an hejmara = hejmar + 10 hûr bibe.

Ev dikare bêtir hejmara + = 2 an hejmara + = 5 kêm dibe .

A Practical Example

Ji bo loops dikarin ji lîsteyên hejmaran zêdetir zêdetir bikin. Hûn dikarin bi derheqê dahatên din ên wekî lîsteyê bikar bînin.

Mînakek jêrîn nîşan dide ku pelên audio yên ji MP3 veguherîne WAV :

#! / bin / bash

Lîsteya vê nimûne ye ku her pelê bi pelê heyî .MP3 dirêjkirina peldanka heyî û guherînek pel e .

Fermandarê mpg- ê pelê MP3-ê WAV-ê veguherîne. Lê belê, dibe ku hûn meriv pergala pêşîn a pakêta xwe bikar bînin saz bikin.