Kako uporabiti BASH za zanko



Preizkusite Naš Instrument Za Odpravo Težav

Eden najosnovnejših trikov pri ustvarjanju bash skriptov vključuje izdelavo zanke, tako da lahko določeno nalogo večkrat samodejno izvedemo. Sčasoma bo zanka dosegla vnaprej določeni preskusni pogoj in nenadoma prenehala izvajati. Takšne zanke bodo popolnoma delovale v bashu v Linuxu in macOS-u, pa tudi v lupini bash v operacijskem sistemu Windows 10 in celo v različnih lupinah v FreeBSD. Seveda lahko v katero koli zanko napišete poljuben ukaz in ohranite poljuben čas, kolikor želite. Čeprav bomo napisali nekaj zelo preprostih zank, lahko s temi veščinami ustvarite poljubne skripte, ki jih želite.



Obstaja veliko načinov, kako začeti pisati skript, toda za to razpravo bomo domnevali, da ste odprli ukazni poziv bodisi z iskanjem terminala na pomišljaju, bodisi s klikom nanj v menijih KDE, MATE, LX ali Whisker ali z držanjem tipk Ctrl, Alt in T hkrati. Čeprav bomo o vi / vim in nano razpravljali kot o urednikih, je vprašanje, katerega urejevalnika uporabiti, precej osebno in z njim bi lahko delali s čimer se počutite dobro.



1. metoda: Do Loop

Morda je najosnovnejša zanka v bashu zanka till. Izvajala bo ukaze, dokler preskusni pogoj, ki ste ga nastavili, ne postane resničen. Predvidevali bomo, da ste uporabili nano ali vi za odpiranje neobstoječe datoteke, imenovane dokler.sh, in ste vanjo pripravljeni vstaviti novo besedilo. Naredili bomo samo nekaj, kar šteje do 20 v vašem terminalu, da bo to sprva enostavno.



Najprej vnesite naslednje:

#! / bin / bash

n = 0



do [$ n -gt 20]

naredi

echo $ n

((n ++))

Končano

Če uporabljate nano, ga shranite tako, da držite Ctrl in nato pritisnete O in na koncu X za izhod. Uporabniki vi bodo želeli pritisniti escape, nato pa vnesite: wq, da shranijo in zaprejo.

Naslednja vrsta chmod + x doklerLoop v pozivu, da bo izvedljiv in nato vnesite ./untilLoop da ga zaženete. Ko se zanka zažene, bo na vašem terminalu še naprej tiskala nove številke, dokler n ne bo spremenljivka 20.

Mimogrede, prva vrstica vašemu okolju pove, katero lupino naj se naloži pri delu s temi skripti. Nekateri programerji svetujejo le, da z uporabo #! / Bin / sh zagotovite, da vaš skript ustreza določenim standardom POSIX, vendar ti preprosti skripti ne bi smeli imeti težav z izvajanjem velike večine sodobnih sistemov.

2. metoda: for for Loop

Zanka for si ogleda vsak element na danem seznamu in nato izvede določen niz ukazov na tem seznamu. Naredili bomo takšnega, ki bo natisnil nekatera imena operacijskih sistemov, vendar spet ne pozabite, da bi lahko s tem naredili karkoli, če želite.

Vtipkajte bodisi nano forLoop ali smo forLoop v ukazni poziv in začnite vnašati ta naslednji skript. Uporabniki vi bodo morali vstopiti v način vstavljanja, preden to storijo.

#! / bin / bash

unices = 'GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndiana Darwin HP-UX Minix'

za unix v $ unices

naredi

echo $ unix

Končano

Datoteko znova shranite z uporabo Ctrl + O in nato Ctrl + X v nano ali Esc then: wq v vi pred izdajo ukaza chmod + x za zanko da bo izvedljiva. Ko je enkrat, jo zaženite s tipkanjem ./forLoop na poziv. Zanka for prisili ukaz echo, da izmenično deluje na vsakem od elementov spremenljivke unices. Seznam lahko še enkrat zamenjate s katerim koli argumentom in odmev zamenjate s katerim koli ukazom za avtomatizacijo dolgih procesov.

3. metoda: Loop medtem

Začnite urejati tretjo datoteko, imenovano whileLoop, z uporabo nano, vi ali katerega koli drugega urejevalnika, ki ga želite uporabiti. Če bi raje uporabili grafični urejevalnik besedil, bi to lahko dejansko storili tudi s katerim koli od teh projektov, če bi datoteko shranili v isti imenik, v katerem delate, znotraj ukaznega poziva .

Znotraj te datoteke boste želeli dodati vrstice:

#! / bin / bash

n = 0

medtem ko [$ n -le 20]

naredi

echo $ n

((n ++))

Končano

Datoteko shranite na enak način kot ostale in nato zapustite urejevalnik besedil. Ko zaprete, izdajte ukaz chmod + x whileLoop da vam omogoči, da ga zaženete in nato zaženete ./ medtemLoop da ga zaženete. Videli boste enak izhod, ki je izšel iz skripta tillLoop iz prve metode, saj šteje od 0 do 20 v več kot verjetno delčku sekunde.

To je odličen prikaz dejstva, da lahko na tak način delate več načinov, kadar koli delate z zankami. Čeprav tehnično ni napačnega načina, boste verjetno naleteli na avtorje skript, ki trdijo, da bi morali svoje skripte pisati bližje načinu, kot to počne programski jezik C, ali pa bi drugi predlagali, da tega ne bi smeli početi. Iskreno, verjetno obstaja veliko pravilnih načinov za rešitev problema.

Ko končate z vadbo, skripte izbrišite.

3 minute branja