Vodič za početnike BASH - Parametri unosa

Dobrodošli na 2. dio Vodiča za početnike BASH serije koja je jedinstvena po tome što je to jedini BASH udžbenik napisan od početnika za početnike.

Čitatelji ovog vodiča će izgraditi svoje znanje kako ja izgraditi svoje znanje i nadamo se da će do kraja sve što ćemo moći napisati neke prilično pametan skripte.

Prošli tjedan sam pokrivao stvarajući svoju prvu skriptu koja je jednostavno prikazivala riječi "Hello World". Obuhvaća teme kao što su uređivači teksta, kako otvoriti prozor terminala, gdje staviti vaše skripte, kako prikazati riječi "Hello World" i neke finije točke na znakovima bijega kao što su citati ("").

Ovaj tjedan ću pokriti ulazne parametre. Postoje i drugi vodiči koji poučavaju ovakvu vrstu stvari, ali smatram da se skaču u neke prilično niske razine i možda daju previše informacija.

Što je parametar?

U pismu "Hello World" iz zadnjeg udžbenika sve je to bilo vrlo statično. Skripta zapravo nije učinila mnogo.

Kako bismo mogli poboljšati skriptu "Hello World"?

Što je s skriptom koja pozdravlja osobu koja ju pokreće? Umjesto da kaže "Hello World", reći će "Hello Gary", "Hello Tim" ili "Hello Dolly".

Bez sposobnosti prihvaćanja ulaznih parametara moramo napisati tri skripta "hellogary.sh", "hellotim.sh" i "hellodolly.sh".

Dopuštajući našoj skripti da pročita ulazne parametre, možemo koristiti jednu skriptu da netko pozdravi.

Da biste to učinili, otvorite prozor terminala (CTRL + ALT + T) i prijeđite na mapu skripta upisivanjem sljedećeg: ( o naredbi cd )

cd skripti

Napravite novu skriptu pod nazivom greetme.sh tako da upišete sljedeće: ( o naredbi za dodirivanje )

dodir greetme.sh

Otvorite skriptu u svojem omiljenom uredniku upisivanjem sljedećeg: ( o nano naredbi )

nano greetme.sh

U nano unesite sljedeći tekst:

#! / bin / bash echo "hello $ @"

Pritisnite CTRL i O za spremanje datoteke, a zatim CTRL i X za zatvaranje datoteke.

Za pokretanje skripte unesite sljedeće u naredbeni redak zamjenjujući svoje ime.

sh greetme.sh

Ako pokrećem skriptu s imenom, prikazuje se riječ "Hello Gary".

Prva linija ima #! / Bin / bash liniju koja se koristi za prepoznavanje datoteke kao bash skripta.

Druga linija koristi echo izjavu da odjekuje riječ hello, a zatim tu je čudno $ @ zapis. ( oko eho naredbe )

$ @ Proširuje se za prikaz svih parametara koji su uneseni zajedno s imenom skripte. Dakle, ako ste upisali "sh greetme.sh tim", riječi "hello tim" će biti prikazane. Ako ste upisali "greetme.sh tim smith" onda će se prikazati riječi "hello tim smith".

Moglo bi biti lijepo za greetme.sh skriptu samo pozdraviti koristeći samo ime. Nitko ne kaže "hello gary newell" kad su me upoznali, mogli bi reći "hello gary" ipak.

Promijenimo skriptu tako da samo upotrebljava prvi parametar. Otvorite greetme.sh skriptu u nano upisujući sljedeće:

nano greetme.sh

Promijenite skriptu tako da glasi kako slijedi:

#! / bin / bash echo "hello $ 1"

Spremite skriptu pritiskom tipke CTRL i O, a zatim izađite pritiskom tipke CTRL i X.

Pokrenite skriptu kao što je prikazano u nastavku (zamijenite moje ime sa svojim):

sh greetme.sh gary newell

Kada pokrenete skriptu jednostavno će vam reći "hello gary" (ili nadamo se "hello" i što god vam je ime.

1 nakon simbola $ u osnovi navodi naredbu odjek, koristite prvi parametar. Ako zamijenite $ 1 s $ 2, onda bi se prikazao "hello newell" (ili što god vam je prezime).

Usput, ako ste zamijenili $ 2 s $ 3 i pokrenuli skriptu sa samo 2 parametra, izlaz jednostavno bi bio "Hello".

Moguće je prikazati i upravljati brojem parametara koji su zapravo uneseni, au kasnijim vodičima pokazat ću kako koristiti parametar za potrebe validacije.

Da biste prikazali broj otvorenih parametara, otvorite greetme.sh skriptu (nano greetme.sh) i izmijenite tekst na sljedeći način:

#! / bin / bash echo "unijeli ste $ # imena" echo "hello $ @"

Pritisnite CTRL i O za spremanje skripte i CTRL i X za izlaz iz nano-a.

$ # Na 2. redu prikazuje broj unesenih parametara.

Dosad je sve to bilo roman, ali ne i vrlo korisno. Tko treba skriptu koja jednostavno prikazuje "pozdrav"?

Prava upotreba eho izjava je pružiti opširan i smislen izlaz za korisnika. Ako možete zamisliti da želite napraviti nešto komplicirano, što uključuje ozbiljan broj crunching i manipuliranje datotekama / mapama, bilo bi korisno prikazati korisniku što se događa svakom koraku.

Nasuprot tome, parametri unosa čine vašu skriptu interaktivnom. Bez ulaznih parametara trebalo bi desetine skripti koje rade vrlo slične stvari, ali s malo drugačijim imenima.

Uz sve to na umu, postoje neki drugi korisni parametri unosa, što je dobro znati i ja ću ih sve uključiti u jedan isječak koda.

Otvorite skriptu greetme.sh i izmijenite ga na sljedeći način:

#! / bin / bash echo "Filename: $ 0" echo "ID procesa: $$" echo "---------------------------- --- "echo" ste unijeli $ # imena "echo" hello $ @ "

Pritisnite CTRL i O za spremanje datoteke i CTRL i X za izlaz.

Pokrenite skriptu (zamijenite s imenom).

sh greetme.sh

Ovaj put skripta prikazuje sljedeće:

Filename: greetme.sh ID procesa: 18595 ------------------------------ ušli ste 2 imena hello gary newell

$ 0 na prvom retku skripte prikazuje naziv skripte koju izvodite. Imajte na umu da je dolar nula, a ne dolar o.

$ $ U drugom retku prikazuje ID procesa skripte koju koristite. Zašto je to korisno? Ako u prvom planu imate skriptu, možete ga otkazati jednostavnim pritiskom na tipke CTRL i C. Ako ste pokrenuli skriptu u pozadini i počeli ste petlje i radili istu stvar iznova ili iznova ili ste počeli uzrokovati štetu vašem sustavu, potreban vam je da ga ubijete.

Da biste ubiti skriptu koja se izvodi u pozadini, trebate procesni ID skripte. Ne bi li bilo dobro ako je skripta dao ID procesa kao dio svog izlaza. ( o PS i ubiti naredbe )

Konačno, prije nego što završim sa ovom temom, htio sam razgovarati o mjestu izlaza. Svaki put kada se skripta odigrala, izlaz je prikazan na zaslonu.

Uobičajeno je da se izlazni program skenira na izlaznu datoteku. Da biste to učinili pokrenite skriptu na sljedeći način:

sh greetme.sh gary> greetme.log

> Simbol u gornjoj naredbi izlaže tekst "hello gary" u datoteku koja se zove greetme.log.

Svaki put kada pokrenete skriptu s> simbolom, ona nadjačava sadržaj izlazne datoteke. Ako biste voljeli dodati datoteku, zamijenite> s >>.

Sažetak

Trebali biste sada moći pisati tekst na zaslonu i prihvatiti ulazne parametre.