Kako napisati BASH "za" zanko

Kako uporabiti BASH "za" zanko v skripti lupine

BASH (ki stoji za Bourne Again Shell) je skriptni jezik, ki ga uporablja večina operacijskih sistemov na osnovi Linuxa in UNIX.

Bojne ukaze lahko zaženete v oknu terminala eno za drugim ali pa lahko dodate ukaze v besedilno datoteko, da izdelate skripto lupine.

Odlična stvar pri pisanju lupinskih skriptov je, da jih lahko vedno znova zaženete. Predstavljajte si, na primer, da morate dodati uporabnika v sistem, nastaviti njihova dovoljenja in upravljati svoje začetno okolje. Lahko zapišete ukaze na kos papirja in jih zaženete, ko dodate nove uporabnike, ali pa lahko napišete en sam skript in preprosto prenesete parametre v ta skript.

Skriptni jeziki, kot je BASH, imajo podobne programske konstrukte kot drugi jeziki. Na primer, parametre uvoza lahko uporabite za vnos iz tipkovnice in jih shranite kot spremenljivke. Skript lahko nato izvedete za izvedbo določenega dejanja, ki temelji na vrednosti vhodnih parametrov .

Ključni del katerega koli programskega in skriptnega jezika je zmožnost ponovnega zagona enake kode kode.

Obstaja več načinov ponovitve kode (znane tudi kot zanke). V tem vodniku vam bo prikazano, kako napisati "za" zanko.

A za zanko ponovi določen del kode znova in več. Uporabni so tako, da se lahko zaporedje ukazov nadaljuje, dokler ni izpolnjen določen pogoj, po katerem se bodo ustavili.

V tem vodniku vam bo prikazan pet načinov za uporabo zanke za v BASH skriptu.

Pred začetkom

Preden začnete uporabljati primere za zanke, morate odpreti okno terminala in sledite tem korakom:

  1. Vnesite skripte mkdir ( več o mkdir lahko preberete tukaj )
  2. Vnesite cd skripte (to spremeni imenik v skripte )
  3. Vnesite nano examplen.sh (kjer je n primer, na katerega delate)
  4. Vnesite skript
  5. Pritisnite CTRL + O za shranjevanje in CTRL + X za izhod
  6. Zaženite bash examplen.sh (znova, z n je primer, s katerim delate)

Kako prelistati seznam

#! / bin / bash
za število v 1 2 3 4 5
storiti
echo $ število
Končano
izhod 0

Način BASH z uporabo "za" zanke je nekoliko drugačen od načina, kako večina drugih programskih in skriptnih jezikov obravnava "za" zank. Razbijmo scenarij ...

V BASH "za" zanko vse se izjave med opravilom in storitvijo izvedejo enkrat za vsak element na seznamu.

V zgornjem primeru je seznam vse, kar pride po besedilu (tj. 1 2 3 4 5).

Vsakič, ko zanke ponovi, se naslednja vrednost na seznamu vstavi v spremenljivko, določeno za besedo "za" . V zgornji zanki se spremenljivka imenuje številka .

Eho izjava se uporablja za prikaz informacij na zaslonu.

Zato ta primer vzame številke od 1 do 5 in jih izenači na zaslonu:

Kako zanko med začetno in končno točko

Težava z zgornjim primerom je, da če želite obdelati večji seznam (recimo 1 do 500), bi bilo potrebno starost, da vnesete vse številke na prvem mestu.

To nas pripelje na drugi primer, ki prikazuje, kako določiti začetno in končno točko:

#! / bin / bash
za številko v {1..10}
storiti
echo "$ number"
Končano
izhod 0

Pravila so v bistvu enaka. Vrednosti za besedo " v" sestavljajo seznam za ponovitev in vsaka vrednost na seznamu se postavi v spremenljivko (to je številka) in vsakič, ko se zanke ponovi, se izvedejo izjave med storitvijo in opravljeno.

Glavna razlika je, kako se oblikuje seznam. Vpni nosilci {} v bistvu označujejo obseg in obseg je v tem primeru od 1 do 10 (dve piki ločita začetek in konec območja).

Ta primer torej poteka skozi vsako število med 1 in 10 in številko prikaže na zaslonu, kot sledi:

Ista zanka bi lahko bila napisana tako, s sintakso, ki je enaka prvemu primeru:

za število v 1 2 3 4 5 6 7 8 9 10

Kako preskočiti številke v območju

Prejšnji primer je pokazal, kako se zanima med začetno in končno točko, zato si zdaj preučimo, kako preskočiti številke v območju.

Predstavljajte si, da želite zanko med 0 in 100, vendar samo prikazati vsako desetino številko. Naslednji skript kaže, kako narediti ravno to:

#! / bin / bash
za številko v {0..100..10}
storiti
echo "$ number"
Končano
izhod 0

Pravila so v bistvu enaka. Obstaja seznam, spremenljivka in niz stavkov, ki jih je treba izvesti med storitvijo in storitvijo . Seznam tokrat izgleda takole: {0..100..10}.

Prva številka je 0 in številka konca je 100. Tretja številka (10) je število elementov na seznamu, ki jih bo preskočil.

Zgornji primer torej prikazuje naslednji izhod:

Bolj tradicionalno iskanje zanke

BASH način pisanja za zanke je nekoliko čuden v primerjavi z drugimi programskimi jeziki.

Lahko pa napišete zanko v podobnem slogu kot programski jezik C, kot je ta:

#! / bin / bash
za ((številka = 1; številka <100; številka ++))
{
če (($ število% 5 == 0))
potem
echo "$ število je deljivo s 5"
fi
}
izhod 0

Zanka se začne, tako da nastavite spremenljivo številko na 1 (številka = 1 ). Zanka bo nadaljevala ponovitev, medtem ko je vrednost števila manj kot 100 ( številka <100 ). Vrednost števila se spremeni z dodajanjem 1 po vsaki ponovitvi ( številka ++ ).

Vse med zavihanimi oporniki se izvaja skozi vsako ponovitev zanke.

Bit med zavitki preveri vrednost števila , jo deli z vrednostjo 5 in primerja preostanek na 0. Če je preostanek 0, potem je število deljivo s 5 in se nato prikaže na zaslonu.

Na primer:

Če želite spremeniti velikost koraka ponovitve, lahko številko + del spremenite v številko = številka + 2 , številka = številka + 5 ali številka = številka + 10 itd.

To je mogoče dodatno zmanjšati na število + = 2 ali število + = 5 .

Praktični primer

Za zanke lahko naredite več kot ponovite sezname številk. Lahko dejansko uporabite izhod drugih ukazov kot seznam.

Naslednji primer prikazuje pretvorbo zvočnih datotek iz MP3 v WAV :

#! / bin / bash

Seznam v tem primeru je vsaka datoteka z razširitvijo .MP3 v trenutni mapi in spremenljivka je datoteka .

Ukaz mpg pretvori datoteko MP3 v WAV. Vendar pa boste verjetno morali to najprej namestiti z upraviteljem paketa.