Pradedančiųjų vadovas BASH įvesties parametrams

Sveiki atvykę į 2-iąją Beginners Guide to BASH seriją, kuri yra unikali tuo, kad tai yra vienintelis BASH pamoka, parašyta pradedantiesiems pradedantiesiems.

Šio vadovo skaitytojai sukurs savo žinias, nes sukursiu savo žinias, ir tikiuosi, kad iki galo mes galime parašyti keletą gudrių scenarijų.

Praėjusią savaitę aš sukūriau savo pirmąjį scenarijų, kuris tiesiog parodė žodžius "Sveiki pasaulis". Tai apima tokius dalykus kaip teksto redaktoriai, kaip atidaryti terminalo langą, kur pateikti scenarijus, kaip rodyti žodžius "Sveiki pasaulis" ir keletą geresnių taškų eskizų simbolių, tokių kaip citatos ("").

Šią savaitę ketinu apibendrinti įvesties parametrus. Yra ir kitų vadovų, kurie moko tokį dalyką, bet manau, kad jie įžengia į gana žemus dalykus ir gali pateikti per daug informacijos.

Kas yra parametras?

"Hello World" scenarijuje nuo paskutinio pamokymo jis buvo labai statiškas. Scenarijus iš tikrųjų labai nepadėjo.

Kaip galėtume tobulinti "Hello World" scenarijų?

Ką apie scenarijų, kuris sveikina jį valdantįjį asmenį? Užuot sakydami "Sveikas pasaulis", jis pasakys "Hello Gary", "Hello Tim" arba "Hello Dolly".

Be galimybės priimti įvesties parametrus turėsime parašyti tris scenarijus: "hellogary.sh", "hellotim.sh" ir "hellodolly.sh".

Leidžiant mūsų scenarijų skaityti įvesties parametrus, mes galime naudoti vieną scenarijų, kuris visiems pasveikinti.

Norėdami tai padaryti, atidarykite terminalo langą (CTRL + ALT + T) ir eikite į savo scenarijų aplanką, įveskite šį: ( apie cd komandą )

cd scenarijus

Sukurkite naują scenarijų, vadinamą greetme.sh, įveskite šiuos duomenis: ( apie komandą liesti )

palieskite greetme.sh

Atidarykite scenarijų savo mėgstamiausioje redaktoriuje, įveskite: ( apie nano komandą )

nano greetme.sh

Įveskite šį tekstą nano:

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

Paspauskite CTRL ir O, kad išsaugotumėte failą, tada CTRL ir X, kad uždarytumėte failą.

Jei norite paleisti scenarijų, į komandų eilutę, pakeičiantį savo vardą, įveskite toliau nurodytą informaciją.

Š greetme.sh

Jei paleisiu scenarijų savo vardu, jis parodys žodžius "Sveiki Gary".

Pirmoje eilutėje yra eilutė #! / Bin / bash, kuri naudojama identifikuoti failą kaip bash scenarijų.

Antroji eilutė naudoja echo pareiškimą, kuris atkartoja žodį "hello", o tada yra keista $ @ notacija. ( apie echo komandą )

$ @ Plečiasi, kad būtų rodomas kiekvienas įvestas parametras kartu su scenarijaus pavadinimu. Taigi, jei įvedėte "sh greetme.sh tim", bus rodomi žodžiai "hello tim". Jei įvedėte "greetme.sh tim smith", rodomi žodžiai "hello tim smith".

Skirtukas greetme.sh gali būti malonu pasakyti sveikais tik vardą. Niekas sako "sveiki gary naujelis", kai susitiks su manimi, nors jie gali pasakyti "sveiki gary".

Pakeiskime scenarijų, kad jis tiesiog naudotų pirmąjį parametrą. Atidarykite scenarijų greetme.sh į nano, įveskite šiuos duomenis:

nano greetme.sh

Pakeiskite scenarijų taip, kad jis būtų toks:

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

Išsaugokite scenarijų paspausdami CTRL ir O, tada palikdami paspauskite CTRL ir X.

Paleiskite scenarijų, kaip parodyta žemiau (pakeiskite mano vardą savo):

sh greetme.sh gary newell

Kai paleidžiate scenarijų, jis paprasčiausiai pasakys "Sveiki Gary" (arba, tikiuosi, "Sveiki" ir koks yra jūsų vardas).

1 po simbolio $ iš esmės sako echo komandą, naudokite pirmąjį parametrą. Jei pakeisite $ 1 su $ 2, jis parodys "hello newell" (ar jūsų vardas bus jūsų vardas).

Beje, jei pakeitėte $ 2 su $ 3 ir paleidėte scenarijų tik su dviem parametrais, produkcija tiesiog būtų "Hello".

Galima parodyti ir tvarkyti faktiškai įvestų parametrų skaičių ir vėlesniuose pamokose. Aš parodysiu, kaip naudoti parametrų skaičių patvirtinimo tikslais.

Norėdami parodyti įvestų parametrų skaičių, atidarykite scenarijų greetme.sh (nano greetme.sh) ir pakeiskite tekstą taip:

#! / bin / bash echo "įvedėte $ # pavadinimų" echo "hello $ @"

Paspauskite CTRL ir O, kad išsaugotumėte scenarijų, CTRL ir X, kad išeitumėte iš nano.

2 eilutėje esantis # # rodo įvestų parametrų skaičių.

Iki šiol visa tai buvo nauja, bet ne labai naudinga. Kas turi scenarijų, kuris tiesiog parodo "sveika"?

Tikrasis echo pareiškimų naudojimas yra suteikti vartotojui reikšmingą ir reikšmingą išraišką. Jei galite įsivaizduoti, kad norite padaryti kažką sudėtingo, kuris apima rimtų skaičių sugadinimą ir failų / aplankų manipuliavimą, būtų naudinga rodyti naudotojui, kas vyksta kiekviename žingsnyje.

Priešingai, įvesties parametrai daro jūsų scenarijų interaktyvų. Be įvesties parametrų jums reikės dešimtys scenarijų, kurie daro labai panašius dalykus, bet šiek tiek skiriasi pavadinimai.

Atsižvelgdami į tai, yra keletas kitų naudingų įvesties parametrų, kurių gera idėja žinoti, ir visus juos įtraukiu į vieną kodo fragmentą.

Atidarykite savo greetme.sh scenarijų ir pakeiskite jį taip:

#! / bin / bash echo "Filename: $ 0" echo "Proceso ID: $$" echo "---------------------------- --- "echo" įvedėte $ # pavadinimų "echo" hello $ @ "

Norėdami išsaugoti failą, paspauskite CTRL ir O, o CTRL ir X - išeiti.

Dabar paleiskite scenarijų (pakeiskite savo vardą).

Š greetme.sh

Šį kartą scenarijus rodo:

Failo vardas: greetme.sh Proceso ID: 18595 ------------------------------ Jūs įvedėte 2 vardus sveiki gary newell

Pirmoje scenarijaus eilutėje $ 0 parodo scenarijaus, kurį naudojate, pavadinimą. Atkreipkite dėmesį, kad tai yra doleris, o ne doleris o.

Antroje eilutėje $$ rodomas jūsų vykdomo scenarijaus proceso ID. Kodėl tai naudinga? Jei naudojate scenarijų į priekinį planą, galite jį atšaukti paprasčiausiai paspausdami CTRL ir C. Jei paleidžiate scenarijų fone ir jis pradėjo kilpa ir darė tą patį dalyką per ilgą laiką arba pradėjo sukelti žalą jūsų sistemai, jums reikės jį nužudyti.

Norėdami nužudyti scenarijų, kuriame veikia fone, reikia scenarijaus proceso ID. Ar nebūtų gerai, jei scenarijus proceso ID atitiktų jo produkciją. ( apie ps ir nužudyti komandas )

Galiausiai, prieš baigdamas šią temą, norėjau aptarti, kur vyksta produkcija. Kaskart, kol scenarijus paleistas iki šiol, ekrane rodoma išvestis.

Paprastai scenarijų išvestis rašoma į išvesties failą. Norėdami tai padaryti, paleiskite savo scenarijų taip:

sh greetme.sh gary> greetme.log

> Simbolis aukščiau pateiktoje komandoje išveda tekstą "hello gary" į failą, pavadintą greetme.log.

Kiekvieną kartą paleidus scenarijų su> simboliu jis perrašo išvesties failo turinį. Jei norėtumėte pridėti prie failo, pakeiskite> su >>.

Santrauka

Dabar turėtumėte galimybę rašyti tekstą ekrane ir priimti įvesties parametrus.