Nola BASH bat idaztea "for" Loop-era

Nola erabili BASH "for" begizta shell scriptak

BASH (hau da, Bourne Again Shell izenekoa) Linux eta UNIX oinarritutako sistema eragile gehienek erabiltzen duten scripting hizkuntza da.

BASH komandoak exekutatzeko, leiho bateko leiho batean exekutatzen baduzu, edo komandoak testuko fitxategi batera gehi ditzakezu shell script bat sortzeko.

Scrolls idazteko scriptak idazteko gauza handia da behin eta berriro exekutatzeko. Adibidez, imajinatu erabiltzaile bat sistema bat gehitu behar duzu, ezarri baimenak eta hasierako ingurunea kudeatu. Komandoak idatz ditzakezu paper-zati batean eta exekutatu erabiltzaile berriak gehitzen badituzu edo script bakar bat idazteko eta parametroak pasatzeko script horretan.

BASH bezalako script-hizkuntzak beste hizkuntza batzuen antzeko programazio-eraikinak dituzte. Adibidez, inportatzeko parametroak erabil ditzakezu teklatuan sartzeko eta gorde aldagai gisa. Gidoia idazketa-parametroen balioan oinarritutako ekintza jakin bat burutzeko eskuratu dezakezu.

Programazio eta scripting hizkuntza bakoitzaren funtsezko gakoa kode bereko eta berrerabilpen bera izateko gaitasuna da.

Kodea errepikatzeko modu ugari daude (begiztak ere deitzen zaizkio). Gida honetan, "for" begizta nola idazten den erakutsiko zaizu.

Begizta A errepikatzen du kode baten atal bat behin eta berriro. Erabilgarriak dira komando sorta bat exekutatzen egon daitekeela baldintza jakin bat bete arte, eta ondoren geldituko dira.

Gida honetan, BASH script baten barruan begizta erabiltzeko bost modu erakutsiko dira.

Hasi aurretik

Bikoiztutako adibideekin hasi aurretik, terminal-leiho bat ireki eta urrats hauek jarraitu behar dituzu:

  1. Sartu mkdir script-ak (ikusi mkdir-i buruz gehiago jakiteko )
  2. Sartu cd scriptak (hau script-ean scriptak aldatzen ditu )
  3. Sartu nano examplen.sh (non n erabiltzen ari zaren adibidea nago )
  4. Idatzi gidoia
  5. Sakatu KTRL + O gorde eta CTRL + X ateratzeko
  6. Exekutatu bash examplen.sh (berriro, n ari zaren lanean ari zaren adibidearekin)

Zerrenda baten bidez nola joan

#! / Bin / bash
1 2 3 4 5 zenbakian
ez
echo $ number
done
irten 0

Boot "for" begiztak erabiltzearen modua zertxobait desberdina da beste programazio eta scripting hizkuntzen artean "to" begiztak kudeatzeko. Letra hautsi behera ...

BASH "for" loop batean, egin eta egin arteko adierazpenak behin egiten dira zerrendako elementu guztietarako.

Goiko adibidean, zerrendan hitzaren ondoren datorren guztia (hau da, 1 2 3 4 5).

Bikoiztutako iterazioak aldi bakoitzean, zerrendako hurrengo balioa "for" hitzaren ondoren zehazten den aldagaian txertatuko da. Goiko begiztan, aldagaia deitzen zaio zenbakia .

Oihartzun adierazpena pantaila bistaratzeko informazioa erabiltzen da.

Hori dela eta, adibide honek 1etik 5era bitarteko zenbakiak hartzen ditu eta pantailan banan-banan ematen ditu.

Hasiera eta amaiera puntuen arteko loop

Aurreko adibidearekin arazoak da zerrenda handiago bat prozesatu nahi baduzu (1etik 500era bitartekoa), lehenengo zenbakiak zenbaki guztiak idatzi beharko lituzke.

Horrek erakusten digun bigarren adibidea erakusten du hasiera eta amaiera puntua zehazteko:

#! / Bin / bash
{1..10} zenbakira
ez
echo "$ number"
done
irten 0

Arauak funtsean berdinak dira. " In" hitzaren ondorengo balioak zerrenda osatzen du, eta zerrendako balio bakoitza aldagaiaren (hau da, zenbakia) jartzen da, eta begizta iteratzen den bakoitzean, egin eta egin arteko adierazpenak burutzen dira.

Zerrenda osatzen den moduaren desberdintasun nagusia da. Kurbak dituen parentesi {} funtsean barruti bat adierazten du, eta barrutia, kasu honetan, 1etik 10ra dago (bi puntuek barrutiaren hasiera eta amaiera bereizten dituzte).

Adibide hau, beraz, 1 eta 10 arteko zenbaki bakoitza zeharkatzen du eta pantaila honela pantaila honela erakusten du:

Begi berdea honela idatzi zitekeen, lehen adibidean sintaxiarekin :

1 2 3 4 5 6 7 8 9 10 zenbakian

Zenbakiak nola saltatu barrutian

Aurreko adibidean hasierako eta amaierako puntuen arteko begizta nola agertu zen, beraz, orain barrutian zenbakiak nola saltatu behar diren ikusiko dugu.

Imajinatu 0 eta 100 artean begizta nahi baduzu, hamargarren zenbaki bakoitza bakarrik erakusten du. Ondorengo scriptak honela erakusten du:

#! / Bin / bash
{0..100..10} zenbakira
ez
echo "$ number"
done
irten 0

Arauak funtsean berdinak dira. Zerrenda bat, aldagai bat eta egin eta egin arteko adierazpen multzo bat dago. Zerrenda honetarako hau da: {0..100..10}.

Lehenengo zenbakia 0 da eta azken zenbakia 100 da. Hirugarren zenbakia (10) saltatuko duen zerrendako elementu kopurua da.

Goiko adibidea, beraz, hurrengo irteera bistaratzen du:

Bikoiztutako begirada gehiago tradizionala

BOPk begiztak idazteko modu arraroa da beste programazio hizkuntzen aldean.

Hala ere, idazketa bat egin dezakezu antzeko estilo batean C programazio-lengoaian, hau da:

#! / Bin / bash
for ((number = 1; number <100; number ++))
{
if (($% 5% == 0))
gero
echo "$ zenbakia zatigarria da 5"
fi
}
irten 0

Begizta kopurua 1 aldagaiaren ezarrita hasten da (zenbakia = 1 ). Buelta iteratzen jarraituko du zenbaki baten balioa 100 baino txikiagoa bada ( zenbakia <100 ). Zenbakien balioa aldatu egiten da 1 iterazio bakoitzaren ondoren ( zenbakia ++ ).

Kizkur giltzen arteko guztia begizta iterazio bakoitzaren bidez egiten da.

Tutuen arteko bitak zenbaki baten balioa egiaztatzen du, 5 zatitzen du eta gainerakoa 0 da. Gainerakoa 0 bada, zenbakia zatigarria da 5 eta ondoren pantailan bistaratuko da.

Adibidez:

Iterazioaren urratsa aldatu nahi baduzu zenbaki zenbakia + zenbakia = zenbakia + 2 , zenbakia = zenbaki + 5 , edo zenbaki = zenbakia + 10 zenbakia alda dezakezu.

Horrek gehiago murriztu dezake + = 2 zenbakia edo + 5 zenbakia .

Adibide praktikoa

Loopek zenbakien zerrenden iterazio baino gehiago egin ditzakete. Benetan erabil dezakezu gainerako komandoak irteera zerrendan.

Ondorengo adibidean WAV fitxategiak audio fitxategiak nola bihurtzen diren erakusten du:

#! / Bin / bash

Adibide honetan zerrenda fitxategi guztietan dago .MP3 luzapenarekin uneko karpetan eta aldagaia fitxategi bat da.

MPG komandoa MP3 fitxategia WAV bihurtzen du. Hala ere, zure pakete kudeatzailea erabiliz lehenik instalatu beharko zenuke.