Udhëzues fillestar për BASH - Parametrat e hyrjes

Mirë se vini në pjesën e dytë të Fillores Guide To BASH seri e cila është unike në atë që është vetëm BASH tutorial shkruar nga një fillestar për fillestar.

Lexuesit e këtij doracaku do të ndërtojnë njohuritë e tyre kur të ndërtoj njohuritë e mia dhe me shpresë që deri në fund të gjithë ne do të jemi në gjendje të shkruajmë disa shkrime mjaft të mençura.

Javën e kaluar unë mbulova krijimin e shkrimit tuaj të parë që thjesht shfaqi fjalët "Hello World". Ai mbulon tema të tilla si redaktorët e tekstit, si të hapni një dritare të terminalit, ku të vendosni skriptet tuaja, si të shfaqni fjalët "Përshëndetja e botës" dhe disa pika më të imëta në shenja të arratisjes si kuotat ("").

Këtë javë do të mbuloj parametrat e hyrjes. Ka udhëzime të tjera që mësojnë këtë lloj gjëje, por unë shoh se ata hidhen në disa gjëra mjaft të ulëta dhe ndoshta sigurojnë shumë informacione.

Cili është një parametër?

Në skenën "Hello World" nga tutoriali i fundit, ishte shumë statike. Shkrimi nuk ka të bëjë me të vërtetë fare.

Si mund të përmirësohemi në skenarin "Hello World"?

Po në lidhje me një skenar që përshëndet personin që e drejton atë? Në vend që të thoni "Hello World" do të thotë "Hello Gary", "Hello Tim" ose "Hello Dolly".

Pa aftësinë për të pranuar parametrat e hyrjes ne do të duhet të shkruajmë tre skena "hellogary.sh", "hellotim.sh" dhe "hellodolly.sh".

Duke lejuar shkrimin tonë për të lexuar parametrat e futjes ne mund të përdorim një skript për të përshëndetur secilin.

Për ta bërë këtë hapni një dritare të terminalit (CTRL + ALT + T) dhe lundroni në dosjen e skripteve duke shtypur në vijim: ( rreth komandës cd )

skedarë cd

Krijo një skript të ri të quajtur greetme.sh duke shtypur në vijim: ( rreth komandës së kontaktit )

prek greetme.sh

Hapni skriptin në redaktorin tuaj të preferuar duke shtypur në vijim: ( rreth komandës nano )

nano greetme.sh

Shkruani tekstin e mëposhtëm brenda nano:

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

Shtypni CTRL dhe O për të ruajtur skedarin dhe pastaj CTRL dhe X për të mbyllur skedarin.

Për të drejtuar shkrimin futni në vijim në rreshtin komandues duke zëvendësuar me emrin tuaj.

sh greetme.sh

Nëse e drejtoj shkrimin me emrin tim, ajo tregon fjalët "Hello Gary".

Linja e parë ka linjën #! / Bin / bash e cila përdoret për të identifikuar skedarin si një skript bash.

Rreshti i dytë përdor fjalën e jehonë për të bërë jehonë fjalën hello dhe pastaj ka nota e çuditshme $ @. ( rreth komandës së echo )

$ @ Zgjerohet për të shfaqur çdo parametër që është futur bashkë me emrin e skriptit. Pra, nëse shtypni "sh greetme.sh tim" fjalët "hello tim" do të shfaqen. Nëse shkruan "greetme.sh tim smith" atëherë fjalët "hello tim smith" do të shfaqeshin.

Mund të jetë mirë për skenarin greetme.sh të vetëm përshëndetje duke përdorur vetëm emrin e parë. Askush nuk thotë "hello gary newell" kur më takojnë, ata mund të thonë "hello gary" edhe pse.

Le të ndryshojmë skenarin në mënyrë që të përdorë vetëm parametrin e parë. Hapni skriptin greetme.sh në nano duke shtypur në vijim:

nano greetme.sh

Ndryshoni skenarin në mënyrë që të lexoni si më poshtë:

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

Ruaj skriptin duke shtypur CTRL dhe O dhe pastaj dilni duke shtypur CTRL dhe X.

Run script si më poshtë (zëvendësoni emrin tim me tuajat):

sh greetme.sh gary newell

Kur drejtoni skenarin thjesht do të thoni "hello gary" (ose shpresojmë se "hello" dhe çfarëdo që të jetë emri juaj.

1 pas simboli $ në thelb i thotë komandës së jehos, përdorni parametrin e parë. Nëse zëvendësoni $ 1 me $ 2 atëherë do të shfaqni "hello newell" (ose çfarëdo që është mbiemri juaj).

Rastësisht nëse e keni zëvendësuar $ 2 me $ 3 dhe keni drejtuar shkrimin me vetëm 2 parametra, rezultati do të ishte thjesht "Hello".

Është e mundur për të shfaqur dhe trajtuar numrin e parametrave të futur në të vërtetë dhe në tutorials më vonë unë do të tregojnë se si të përdorin numërimin e parametrave për qëllime validation.

Për të shfaqur numrin e parametrave të futur, hapni skriptin greetme.sh (nano greetme.sh) dhe ndryshoni tekstin si më poshtë:

#! / bin / bash echo "keni futur $ # emra" echo "hello $ @"

Shtypni CTRL dhe O për të ruajtur skriptin dhe CTRL dhe X për të dalë nga nano.

$ # Në rreshtin e dytë tregon numrin e parametrave të futur.

Deri më tani e gjithë kjo ka qenë roman, por jo shumë e dobishme. Kush ka nevojë për një skript që thjesht tregon "hello"?

Përdorimi i vërtetë për deklaratat e jehonës është që të ofrojë prodhim të hollësishëm dhe kuptimplotë për përdoruesit. Nëse mund të imagjinoni se doni të bëni diçka të komplikuar, që përfshin disa numërime serioze të manipulimit të skedarëve dhe dosjeve, do të ishte e dobishme për të shfaqur tek përdoruesi çfarë po ndodh çdo hap i rrugës.

Në të kundërt, parametrat e hyrjes e bëjnë skenarin tuaj interaktiv. Pa parametrat e hyrjes do t'ju duhen dhjetëra skripta që të gjitha të bëjnë gjëra shumë të ngjashme, por me emra pak më të ndryshëm.

Me gjithë këtë në mendje ka disa parametra të tjerë të dobishëm të futjes se është një ide e mirë të dini dhe unë do t'i përfshij të gjithë në një copëz të kodit.

Hapni skenarin tuaj greetme.sh dhe ndryshoni atë si më poshtë:

#! / bin / bash echo "Emri i skedarit: $ 0" echo "ID procesi: $$" echo "---------------------------- --- "echo" keni hyrë $ # emra "echo" hello $ @ "

Shtypni CTRL dhe O për të ruajtur skedarin dhe CTRL dhe X për të dalë.

Tani drejtuar skriptin (zëvendësoni me emrin tuaj).

sh greetme.sh

Këtë herë, skripti tregon:

Emri i skedarit: greetme.sh Procesi ID: 18595 ------------------------------ keni futur 2 emra hello gary newell

$ 0 në rreshtin e parë të skriptit tregon emrin e shkrimit që po kandidon. Vini re se është dollari zero dhe jo dollari o.

$$ në rreshtin e dytë tregon id procesin e skriptit tuaj që po kandidon. Pse është kjo e dobishme? Nëse po drejton një skicë në plan të parë ju mund ta anuloni thjesht duke shtypur CTRL dhe C. Nëse keni drejtuar skenarin në sfond dhe filloi të hapet dhe po bën të njëjtën gjë pa pushim ose filloi të shkaktojë dëme në sistemin tuaj, do t'ju duhej për ta vrarë atë.

Për të vrarë një skript që funksionon në sfond ju nevojitet id procesi i skenarit. A nuk do të ishte mirë nëse skripti i dha id proces si pjesë e prodhimit të saj. ( rreth ps dhe vrasin komandat )

Më në fund, përpara se të përfundoj me këtë temë, doja të diskutoj se ku shkon prodhimi. Çdo herë që skripti ka ekzekutuar deri më tani, shfaqja është shfaqur në ekran.

Është shumë e zakonshme që prodhimi i shkrimit të shkruhet në një skedar të prodhimit. Për ta bërë këtë drejtuar shkrimin tuaj si më poshtë:

sh greetme.sh gary> greetme.log

Simboli> në komandën e mësipërme nxjerr tekstin "hello gary" në një skedar të quajtur greetme.log.

Çdo herë që kryeni skriptin me simbolin> mbishkruaj përmbajtjen e skedarit të prodhimit. Nëse preferoni t'i bashkangjitni skedarit zëvendësoni> me >>.

përmbledhje

Tani duhet të jeni në gjendje të shkruani tekst në ekran dhe të pranoni parametrat e hyrjes.