Kako napisati BASH "za" petlje

Kako koristiti BASH "za" petlju u shell skriptama

BASH (koji se odnosi na Bourne Again Shell) je skriptni jezik koji koristi većina Linux i UNIX baziranih operativnih sistema.

Možete koristiti BASH naredbe unutar prozora terminala jedan za drugim ili možete dodati komande u tekstualnu datoteku kako biste proizveli shell skriptu.

Odlična stvar u pisanju skriptova je da ih možete ponovo pokrenuti. Na primer zamislite da morate dodati korisnika sistemu, postaviti njihove dozvole i upravljati početnim okruženjem. Možete zapišati komande na papiru i pokrenuti ih dok dodate nove korisnike ili možete napisati jednu skriptu i samo prenijeti parametre u taj skript.

Skriptni jezici kao što je BASH imaju slične programske konstrukcije kao i drugi jezici. Na primer, možete koristiti parametre uvoza da biste dobili ulaz sa tastature i sačuvali ih kao varijable. Tada možete dobiti skriptu da izvede određenu akciju zasnovanu na vrijednosti ulaznih parametara .

Ključni deo bilo kog programa za programiranje i skriptovanje je mogućnost ponovnog pokretanja istog komada koda.

Postoji niz načina ponavljanja koda (poznatih i kao petlje). U ovom vodiču biće vam prikazano kako napisati "za" petlju.

A za petlje ponavlja određeni deo koda iznova i više. Oni su korisni tako da niz komandi može nastaviti da radi dok se ne postigne određeno stanje, nakon čega će prestati.

U ovom vodiču bićete prikazani pet načina za korištenje petlje za BASH skriptu.

Pre početka rada

Pre nego što počnete sa primjerima petlje za petlje, potrebno je otvoriti prozor terminala i slijediti ove korake:

  1. Unesite mkdir skripte ( saznajte više o mkdir ovde )
  2. Unesite cd skripte (ovo menja direktorij u skripte )
  3. Unesite nano examplen.sh (gdje je n primjer koji radite)
  4. Unesite skriptu
  5. Pritisnite CTRL + O za spremanje i CTRL + X za izlazak
  6. Pokrenite bash examplen.sh (opet, sa n kao primjerom s kojim radite)

Kako kretati kroz listu

#! / bin / bash
za broj za 1 2 3 4 5
da
echo $ broj
završeno
izlaz 0

BASH način korištenja "za" petlje je nešto drugačiji od načina na koji većina drugih programskih i skriptnih jezika upravlja "za" petlje. Razbijmo scenario ...

U BASH-u za "petlje", izjave između izvršavanja i izvršenja se izvode jednom za svaku stavku na listi.

U gore navedenom primeru, lista je sve što dolazi posle reči (tj. 1 2 3 4 5).

Svaki put kada petlja ponovi, sledeća vrijednost u listi se ubacuje u varijablu koja je navedena nakon riječi "za" . U gornjoj petlji, varijabla se zove broj .

Eho izjava se koristi za prikaz informacija na ekranu.

Dakle, ovaj primer uzima brojeve od 1 do 5 i izlazi ih jedan po jedan na ekran:

Kako krenuti između početne i krajnje tačke

Problem sa gornjim primjerom je to što ako želite da obradite veću listu (recite 1 do 500), potrebno je uzastopno ubaciti sve brojeve.

Ovo nas dovodi do drugog primera koji pokazuje kako odrediti početnu i krajnju tačku:

#! / bin / bash
za broj u {1..10}
da
echo "$ number"
završeno
izlaz 0

Pravila su u osnovi ista. Vrednosti nakon reči " u" čine listu za ponavljanje i svaka vrijednost u listi se stavlja u varijablu (tj. Broj), a svaki put kada se petlja ponavlja, izvršavaju se iskazi između izvršavanja i izvršenja.

Glavna razlika je način na koji se lista formira. Konusni držači {} u osnovi označavaju opseg, a opseg u ovom slučaju je od 1 do 10 (dve tačke odvajaju početak i kraj opsega).

Ovaj primjer, stoga, protiče kroz svaki broj između 1 i 10 i izlazi broj na ekran na sljedeći način:

Ista petlja mogla je biti napisana ovako, sintaksa identična prvom primjeru:

za broj za 1 2 3 4 5 6 7 8 9 10

Kako preći brojeve u opsegu

Prethodni primer je pokazao kako se petlje između početne i krajnje tačke, pa sada ćemo pogledati kako preskočiti brojeve u opsegu.

Zamislite da želite petlje između 0 i 100, ali samo prikazati svaki deseti broj. Sledeća skripta pokazuje kako da uradite upravo to:

#! / bin / bash
za broj u {0..100..10}
da
echo "$ number"
završeno
izlaz 0

Pravila su u osnovi ista. Postoji lista, varijabla i set izjava koje treba izvršiti između učiniti i učiniti . Lista ovog puta izgleda ovako: {0..100..10}.

Prvi broj je 0, a krajni broj je 100. Treći broj (10) je broj stavki na listi koju će preskočiti.

Iz navedenog primera, stoga se prikazuje sljedeći izlaz:

Više tradicionalni traže petlje

BASH način pisanja za petlje je malo čudan kada se uporede sa drugim programskim jezicima.

Međutim, možete napisati petlju u sličnom stilu na programski jezik C, ovako:

#! / bin / bash
za ((broj = 1; broj <100; broj ++))
{
ako (($ broj% 5 == 0))
onda
echo "$ broj je deljiv za 5"
fi
}
izlaz 0

Petlja počinje postavljanjem promenljivog broja na 1 (broj = 1 ). Petlja će nastaviti da ponavlja dok je vrednost broja manja od 100 ( broj <100 ). Vrijednost promjena broja dodavanjem 1 po svakoj iteraciji ( broj ++ ).

Sve između zavojnih kočnica se vrši kroz svaku iteraciju petlje.

Malo između brace proverava vrednost broja , deli ga sa 5 i upoređuje ostatak na 0. Ako je ostatak 0, onda je broj deljiv sa 5, a zatim se prikazuje na ekranu.

Na primjer:

Ako želite da promenite veličinu koraka u iteraciji, možete promeniti broj broja ++ da bude broj = broj + 2 , broj = broj + 5 ili broj = broj + 10 itd.

Ovo se može dodatno smanjiti na broj + = 2 ili broj + = 5 .

Praktični primjer

Za petlje može se uraditi više nego što se ponavlja liste brojeva. Možete zapravo koristiti izlaz drugih komandi kao listu.

Sledeći primer pokazuje kako da pretvorite audio datoteke sa MP3 na WAV :

#! / bin / bash

Lista u ovom primeru je svaka datoteka sa .MP3 ekstenzijom u trenutnoj fascikli i varijabla je datoteka .

Komanda mpg pretvara MP3 datoteku u WAV. Međutim, verovatno ćete morati prvo instalirati pomoću svog menadžera paketa.