BASH (što znači Bourne Again Shell) je skriptni jezik koji koristi većina Linux i UNIX operacijskih sustava.
Možete izvršiti naredbe BASH unutar prozora terminala jedna za drugom ili možete dodati naredbe u tekstnu datoteku kako biste stvorili skriptu ljuske.
Velika stvar o pisanju skriptnih skripti jest da ih možete ponovo i ponovo pokrenuti. Na primjer, zamislite da morate dodati korisnika u sustav, postaviti dopuštenja i upravljati početnim okruženjem. Možete zapisati naredbe na komad papira i pokrenuti ih dok dodate nove korisnike ili možete napisati jednu skriptu i samo prenijeti parametre u tu skriptu.
Skriptni jezici kao što je BASH imaju slične programske konstrukcije kao i drugi jezici. Na primjer, možete upotrijebiti parametre uvoza da biste dobili podatke s tipkovnice i pohranili ih kao varijable. Zatim skriptu možete izvršiti za određenu radnju na temelju vrijednosti ulaznih parametara.
Ključni dio bilo kojeg programa i skriptnog jezika je sposobnost pokretanja istog dijela koda opet i ponovo.
Postoji nekoliko načina ponavljanja koda (također poznatog kao petlje). U ovom vodiču bit će vam prikazano kako napisati "za" petlju.
za petlja opet ponavlja i određeni dio koda. Korisni su tako da se niz naredbi može nastaviti raditi sve dok se ne zadovolji određeni uvjet, nakon čega će prestati.
U ovom vodiču bit će prikazano pet načina korištenja za petlju unutar BASH skripte.
Prije početka rada
Prije nego što započnete sa primjerima za petlje, trebate otvoriti prozor terminala i slijedite ove korake:
-
Unesi mkdir skripte (ovdje saznajte više o mkdiru).
-
Unesi cd skripti (ovo mijenja direktorij u skripta ).
-
Unesi nano examplen.sh (gdje n primjer na kojem radite).
-
Unesite skriptu.
-
tisak Ctrl + O za spremanje i CTRL + X izaći.
-
Trčanje bash examplen.sh (opet, s n kao primjer na kojem radite).
Kako zaobići popis
#! / bin / bashfor broj u 1 2 3 4 5doecho $ numberdoneexit 0
BASH način korištenja "for" petlje je nešto drugačiji od načina na koji većina drugih programskih i skriptnih jezika upravlja "za" petlje. Razbijmo scenarij dolje. U ABH "za" sve petlje, izjave između čini i učinio se izvršavaju jednom za svaku stavku na popisu. U gore navedenom primjeru, popis je sve što dolazi nakon riječi u (tj. 1 2 3 4 5). Svaki put kad iteratska petlja, sljedeća vrijednost na popisu umetnuta je u varijablu navedenu nakon riječi "za" , U gornjoj petlji se poziva varijabla broj . Echo izjava se koristi za prikazane informacije na zaslonu. Dakle, ovaj primjer preuzima brojeve od 1 do 5 i izlazi jedan po jedan na zaslon: Problem s gore navedenim primjerom je taj da ako želite obraditi veći popis (recimo 1 do 500), bilo bi potrebno dobi za upisivanje svih brojeva na prvo mjesto. Ovo nas dovodi do drugog primjera koji pokazuje kako odrediti početnu i završnu točku: #! / bin / bashfor broj u {1..10} doecho "$ number" doneexit 0
Pravila su u osnovi ista. Vrijednosti nakon riječi " u" popuniti popis za iteriranje kroz i svaku vrijednost na popisu je smještena u varijablu (tj. broj), i svaki put kada se petlja iterates, izjave između čini i učinio su izvedeni. Glavna razlika je način na koji se taj popis formira. Urezane zagrade {} u osnovi označavaju raspon, a raspon, u ovom slučaju, iznosi 1 do 10 (dvije točke razdvajaju početak i kraj raspona). Ovaj primjer, dakle, prolazi kroz svaki broj između 1 i 10 i izlazi broj na zaslonu kako slijedi: Ista se petlja mogla napisati ovako, s sintaksom koja je identična prvome primjeru: za broj u 1 2 3 4 5 6 7 8 9 10 Prethodni primjer pokazao je način petlje između početne i završne točke, pa ćemo sada pogledati kako preskočiti brojeve u rasponu. Zamislite da želite petlju između 0 i 100, ali samo prikazati svaki deseti broj. Sljedeća skripta pokazuje kako to učiniti upravo to: #! / bin / bashfor broj u {0..100..10} doecho "$ number" doneexit 0
Pravila su u osnovi ista. Postoji popis, varijabla i skup izjava koje treba izvršiti između čini i učinio , Popis ovaj put izgleda ovako: {0..100..10}. Prvi broj je 0, a krajnji broj je 100. Treći broj (10) predstavlja broj stavki na popisu koji će preskočiti. Gornji primjer stoga prikazuje sljedeći izlaz: BASH način pisanja za petlje malo je čudan u usporedbi s drugim programskim jezicima. Možete, međutim, napisati petlju u obliku sličnog stilu C programskog jezika, kao što je ovaj: #! / bin / bashfor ((broj = 1; broj <100; broj ++)) {if (($ number% 5 == 0)) thenecho "$ broj je djeljiv sa 5" fi "izlaz 0
Petlja počinje postavljanjem varijable broja na 1 (broj = 1 ). Petlja će zadržati iteraciju dok vrijednost broja nije manja od 100 ( broj <100 ). Vrijednost broj promjene nakon dodavanja 1 nakon svake iteracije ( broj ++ ). Sve između kovrčastih zavoja izvodi se kroz svaku iteraciju petlje. Bit između braces provjerava vrijednost a broj , dijeli ga za 5 i uspoređuje ostatak s 0. Ako je ostatak 0, tada je broj djeljiv sa 5, a zatim se prikazuje na zaslonu. Na primjer: Ako želite promijeniti veličinu koraka iteracije, možete izmijeniti dio s brojem ++ koji će biti broj = broj + 2 , broj = broj + 5 , ili broj Broj = + 10 itd To se može dodatno svesti na Broj + 2 ili Broj + = 5 . Jer petlje mogu učiniti više od ponavljanja popisa brojeva. Možete zapravo koristiti izlaz drugih naredbi kao popis. Sljedeći primjer pokazuje kako pretvoriti audio datoteke iz MP3 u WAV: #! / Bin / bashza datoteku u ./*.mp3dompg -w ./wavs/"${file}".wav "$ file" učinjeno
Popis u ovom primjeru je svaka datoteka s nastavkom .MP3 u trenutnoj mapi i varijabla je a datoteka . mpg naredba pretvara MP3 datoteku u WAV. Međutim, vjerojatno je ovo potrebno najprije instalirati pomoću upravitelja paketa.
Kako točkati između početne i krajnje točke
Kako preskočiti brojeve u rasponu
Tradicionalnija traži petlje
Praktični primjer