Byrjandi Guide Til BASH - Input Parameters

Velkomin á 2. hluta byrjendahandbókarinnar til BASH röð sem er einstakt þar sem það er eina BASH kennsla skrifuð af byrjanda fyrir byrjendur.

Lesendur þessa leiðarvísis munu byggja upp þekkingu sína þegar ég byggi upp þekkingu mína og vonandi í lok þess að allt getum við skrifað nokkuð flókin handrit.

Í síðustu viku var fjallað um að búa til fyrsta handritið þitt sem birtist einfaldlega orðin "Hello World". Það nær yfir efni eins og ritstjóra texta, hvernig á að opna flugstöðvar glugga, hvar á að setja forskriftir þínar, hvernig á að birta orðin "Hello World" og nokkrar fínnari punktar á flýja stafi eins og tilvitnanir ("").

Í þessari viku ætla ég að ná yfir inntaksstærðir. Það eru aðrar leiðsögumenn sem kenna þessa tegund af hlutum en ég finn að þeir hoppa inn í nokkuð lágt efni og kannski veita of mikið af upplýsingum.

Hvað er parameter?

Í "Hello World" handritinu frá síðasta einkatími var allt mjög truflanir. Handritið gerði það ekki mikið.

Hvernig getum við bætt á "Hello World" handritið?

Hvað um handrit sem heilsar þeim sem rekur það? Í stað þess að segja "Hello World" mun það segja "Hello Gary", "Hello Tim" eða "Hello Dolly".

Án getu til að samþykkja innsláttarbreytur þurfum við að skrifa þrjú forskriftir "hellogary.sh", "hellotim.sh" og "hellodolly.sh".

Með því að leyfa handritinu okkar að lesa innsláttarbreytur getum við notað eitt handrit til að heilsa neinum.

Til að gera þetta opnaðu flugstöðvar glugga (CTRL + ALT + T) og fletta að skjalavinnslu möppunni með því að slá inn eftirfarandi: ( um cd stjórn )

geisladiskar

Búðu til nýtt handrit sem heitir greetme.sh með því að slá inn eftirfarandi: ( um snertiskipun )

snertu greetme.sh

Opnaðu handritið í uppáhalds ritlinum þínum með því að slá inn eftirfarandi: ( um nano stjórn )

nano greetme.sh

Sláðu inn eftirfarandi texta innan nano:

#! / bin / bash echo "halló $ @"

Ýttu á CTRL og O til að vista skrána og þá CTRL og X til að loka skránni.

Til að keyra handritið skaltu slá inn eftirfarandi í stjórn lína í staðinn með nafninu þínu.

Sh greetme.sh

Ef ég keyrir handritið með nafni mínu birtist orðin "Hello Gary".

Fyrsti línan hefur #! / Bin / bash línu sem er notuð til að auðkenna skrána sem bash handrit.

Önnur línan notar echo yfirlýsingu til að hylja orðið halló og þá er undarlegt $ @ merkingin. ( um echo stjórn )

$ @ Stækkar til að birta hverja breytu sem var slegin inn ásamt handritinu. Þannig að ef þú skrifaðir "sh greetme.sh tim" þá birtast orðin "halló tim". Ef þú skrifaðir "greetme.sh tim smith" þá birtast orðin "halló tim smith".

Það gæti verið gott fyrir greetme.sh handritið að bara segja halló með því að nota bara fornafnið. Enginn segir "halló Gary Newell" þegar þeir hitta mig, gætu þeir sagt "halló Gary" þó.

Leyfðu að breyta handritinu þannig að það notar aðeins fyrstu breytu. Opnaðu greetme.sh handritið í nano með því að slá inn eftirfarandi:

nano greetme.sh

Breyttu handritinu svo að það hljóti sem hér segir:

#! / bin / bash echo "halló $ 1"

Vista handritið með því að ýta á Ctrl og O og hætta því með því að ýta á CTRL og X.

Hlaupa handritið eins og sýnt er hér að neðan (skipta um nafn mitt með þitt):

Sh greetme.sh gary newell

Þegar þú rekur handritið mun það einfaldlega segja "halló Gary" (eða vonandi "halló" og hvað nafnið þitt er.

1 eftir að $ táknið segir í grundvallaratriðum við echo stjórnina, notaðu fyrstu breytu. Ef þú skiptir um $ 1 með $ 2 þá myndi það sýna "halló newell" (eða hvað eftirnafnið þitt er).

Tilviljun ef þú skiptir $ 2 með 3 $ og keyrir handritið með aðeins 2 breytur er framleiðsla einfaldlega "Hello".

Það er hægt að birta og meðhöndla fjölda breytur sem reyndar eru færðar inn og í síðari námskeiðum mun ég sýna hvernig á að nota breytu telja til staðfestingar tilgangi.

Til að birta fjölda breytu sem opnuð eru skaltu opna greetme.sh handritið (nano greetme.sh) og breyta textanum sem hér segir:

#! / bin / bash echo "þú slóst inn $ # nöfn" echo "halló $ @"

Ýttu á CTRL og O til að vista handritið og CTRL og X til að fara úr nano.

The $ # á 2. línan sýnir fjölda breytur sem eru færðar inn.

Þannig hefur allt þetta verið nýtt en ekki mjög gagnlegt. Hver þarf handrit sem einfaldlega sýnir "halló"?

Hinn raunverulegi notkun fyrir echo-yfirlýsingar er að bjóða upp á verulega og þýðingarmikil framleiðsla fyrir notandann. Ef þú getur ímyndað þér að þú viljir gera eitthvað flókið sem felur í sér alvarlegan fjölda marr og skrá / möppu meðhöndlun væri gagnlegt að birta fyrir notandann hvað er að gerast hvert skref á leiðinni.

Hins vegar gerir inntakstærðir handvirkt gagnvirkt. Án innganga breytur þú þarft heilmikið af skriftum allt að gera mjög svipaðar hlutir en með örlítið mismunandi nöfn.

Með allt þetta í huga eru nokkrar aðrar gagnlegar innsláttarbreytur sem það er góð hugmynd að vita og ég mun innihalda þau öll í einu kóðabótum.

Opnaðu greetme.sh handritið þitt og breyttu því sem hér segir:

#! / bin / bash echo "Skráarnafn: $ 0" echo "Aðferðarnúmer: $$" echo "---------------------------- --- "echo" þú slóst inn $ # nöfn "echo" halló $ @ "

Ýttu á CTRL og O til að vista skrána og CTRL og X til að hætta.

Hlaupa nú handritið (skipta með nafni þínu).

Sh greetme.sh

Í þetta sinn birtir handritið eftirfarandi:

Skráarnafn: greetme.sh Process ID: 18595 ------------------------------ þú slóst inn 2 nöfn halló gary newell

$ 0 á fyrstu línu handritsins birtir nafn handritið sem þú ert að keyra. Athugaðu að það er dollar núll og ekki dollara o.

The $ $ á annarri línunni birtir ferlið id handritið sem þú ert að keyra. Af hverju er þetta gagnlegt? Ef þú ert að keyra handrit í forgrunni geturðu hætt því með því að ýta einfaldlega á CTRL og C. Ef þú keyrir handritið í bakgrunni og byrjaði að hlaupa og gera það sama aftur og aftur eða byrjaði að skaða kerfið þitt þá þyrfti það að drepa það.

Til að drepa handrit sem keyrir í bakgrunni þarftu að nota aðferðafræði handritsins. Vildi ekki vera gott ef handritið gaf aðferðafræðin sem hluti af framleiðslunni. ( um ps og drepa skipanir )

Að lokum áður en ég kláraði þetta efni vil ég ræða um hvar framleiðslan fer. Í hvert skipti sem handritið hefur gengið hingað til hefur framleiðsla verið birt á skjánum.

Það er nokkuð algengt að framleiðsla skrifta sé skrifuð í framleiðslulista. Til að gera þetta hlaupa handritið þitt sem hér segir:

Þú ert sem stendur ekki búin / nn að innskrá þig

The> táknið í ofangreindum stjórn framleiðir textann "halló gary" í skrá sem heitir greetme.log.

Í hvert skipti sem þú keyrir handritið með tákninu> skrifar það yfir innihald framleiðslulánsins. Ef þú vilt frekar að bæta við skránni skaltu skipta> með >>.

Yfirlit

Þú ættir nú að vera fær um að skrifa texta á skjáinn og samþykkja innsláttarbreytur.