Beginners Guide nei BASH - Ynfierparameters

Wolkom nei it 2e diel fan 'e Beginners Guide to BASH serie dy't unyk is dat it it iennichste BASH-tutorial is skreaun troch in begjinner foar beginners.

Lêzers fan dizze gids sille har kennis opmeitsje as ik myn kennis opmeitsje en hopeberens troch it ein fan it alles dat wy in pear skuldige skripts skriuwe kinne.

Ferline wike haw ik it boekje makke om jo earste skript te meitsjen dy't gewoan de wurden "Hello World" oanjûn. It befettet ûnderwerpen lykas tekstreden, hoe't jo in terminalfinster iepenje, wêr't jo jo skripts opnimme, hoe't jo de wurden "Hello World" werjaan en inkele finerte punten op ûntfangende tekens as quotes ("").

Dizze wike sil ik de ynputparameters dekke. Der binne oare gids dy't dit soarte ding leare, mar ik fyn dat se sprutsen wurde op guon lege nivo's en kinne miskien te folle ynformaasje leverje.

Wat is in parameter?

Yn it "Hello World" skript fan it lêste tutorial wie it allegear hiel gewoan. It skript hat net echt hiel gewoan.

Hoe kinne wy ​​ferbetterje op it "Hello World" skript?

Wat oer in skript dat de persoan jout dy't it rint? Ynstee fan "Hallo wrâld" sizze it "Hallo Gary", "Hallo Tim" of "Hallo Dolly".

Sûnder de mooglikheid om inputparamaten te akseptearjen, moatte wy trije skripts "hellogary.sh", "hellotim.sh" en "hellodolly.sh" skriuwe.

Troch ús skript te litten om ynputparameters te lêzen kinne wy ​​ien skript brûke om elkenien te groetsjen.

Om dit te dwaan iepenje in terminalfinster (CTRL + ALT + T) en navigearje nei jo skripts map troch de folgjende te typen: ( oer cd kommando )

cd scripts

Skriuw in nije skript mei de namme greetme.sh troch te typen: ( oer touch command )

touch greetme.sh

Iepenje it skript yn jo favorite editor troch de folgjende te typen: ( oer nano kommando )

nano greetme.sh

Fier de folgjende tekst yn yn nano:

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

Druk CTRL en O om it bestân te bewarjen en dan CTRL en X om de bestân te sluten.

Om it skript út te fieren kinne jo de folgjende ynfiere yn 'e kommandorigel ferfange troch jo namme.

sh greetme.sh

As ik it skript mei myn namme útfiere, lit it wurd "Hello Gary" sjen.

De earste line hat de #! / Bin / bash line dy't brûkt wurdt om de triem as in bash skript te identifisearjen.

De twadde line brûkt de echo-ferklearring om it wurd hallo te echo en dan is de frjemde $ @ notaasje. ( oer echo kommando )

De $ @ ferwachtet om elke parameter te sjen dy 't tagelyk mei de skriptnamme ynfierd is. As jo ​​"sh greetme.sh tim" typ hawwe, wurde de wurden "hallo tim" werjûn. As jo ​​"greetme.sh tim smith" typ hawwe, dan wurde de wurden "hallo tim smith" werjûn.

It kin lekker wêze foar it greetme.sh skript om krekt de hello te sizzen mei just de earste namme. Nimmen seit "Hallo gary newell", as se my treffen, kinne se sizze "hallo gary" lykwols.

Lit it skript feroarje, sadat it just de earste parameter brûkt. Iepenje it greetme.sh-skript yn nano troch de folgjende te typen:

nano greetme.sh

It skript feroarje sadat it lêst sa:

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

It skript bewarje troch op CTRL en O te drukken en dan út te gean troch op CTRL en X te drukken.

Rin it skript lykas hjirûnder sjen litte (ferfange myn namme mei jo):

sh greetme.sh gary newell

As jo ​​it skript útfiere, sille jo gewoan sizze "hallo gary" (of hooplik "goed" en wat jo namme is).

De 1 nei it $ symboal seit yn 't foar it echo kommando, brûke de earste parameter. As jo ​​de $ 1 ferfange troch in $ 2, dan soe it "hello newell" sjen (of wat jo famyljelid is).

Wierskynlik as jo de $ 2 ferfongen hawwe mei in $ 3 en rûn it skript mei just 2 parameters, de útfier soe gewoan "Hallo" wêze.

It is mooglik om it oantal ynfierde parameters yn te fieren en te behanneljen, en yn lettere tutorials sil ik sjen litte hoe't de parameter-getal brûkt wurdt foar validearingsdoelen.

Om it oantal ynfierdparameters werjaan te sjen, iepenje it greetme.sh skript (nano greetme.sh) en feroarje de tekst as folgjend:

#! / bin / bash echo "jo hawwe $ # nammen" echo "hello $ @"

Druk CTRL en O om it skript en CTRL en X te bewarjen om te gean nei nano.

De $ # op 'e twadde line lit it oantal ynfierde parameter sjen.

Hjirfan is al dit novelle, mar net hiel brûkber. Wa hat in skript nedich dat jo "goed" sjen litte?

It echte gebrûk foar echo-ferklearrings is om verbose en sintegeande útfier te jaan foar de brûker. As jo ​​foarstelle kinne dat jo wat komplikearre dwaan wolle dy't wat serieuze nûmers crunching en triem / map manipulaasje befettet, soe it brûk wêze om te sjen oan de brûker wat hokker each stap fan 'e manier is.

Taljochting: ynputparameters meitsje jo skript ynteraktyf. Sûnder ynfierparameters soenen jo tsientallen skripts nedich hawwe dy't allegear simpele dingen dogge, mar mei inkele ferskillende nammen.

Mei al dizze gedachten binne der wat guon oare nuttige parameter dat it in goed idee is te witten en ik sil se allegear yn ien koade snippet opnimme.

Iepenje jo greetme.sh-skript en feroarje dizze sa as:

#! / bin / bash echo "Filename: $ 0" echo "Process ID: $$" echo "---------------------------- --- "echo" jo hawwe $ # nammen "echo" hello $ @ "

Druk CTRL en O om it bestân te bewarjen en CTRL en X om út te gean.

Rin it skript út (ferfange mei jo namme).

sh greetme.sh

Dit skript lit it skript sjen:

Filename: greetme.sh Process ID: 18595 ------------------------------ Jo hawwe 2 nammen hello gary newell ynsteld

De $ 0 op 'e earste rigel fan it skript lit de namme fan it skript sjen dy't jo laitsje. Tink derom dat it dollar nul is en gjin dollar o.

De $ $ op 'e twadde line lit de prozen-id sjen fan it skript dat jo brûke. Wêrom is dit nuttich? As jo ​​in skript op 'e foargrûn leare, kinne jo it annulearje troch krekt op CTRL en C op te rjochtsjen. As jo ​​it skript op' e eftergrûn rûn en it begjinne mei it loopjen en itselde ding oer en oer of begon te feroarjen fan jo systeem dy jo nedich hawwe om it te deadzjen.

Om in skript te meitsjen yn 'e eftergrûn nedich is de proseden id fan it skript. Wolle it net goed wêze as it skript de process id joech as in part fan syn útfier. ( oer ps en kill kommando's )

Earst foardat ik mei dit ûnderwerp einigje, woe ik besykje oer wêr't de útfier giet. Elke kear dat it skript sa fier falt, is de útfier op it skerm werjûn.

It is gewoan bewust foar skriptútfier om skreaun wurde nei in útfier bestân. Om dit te dwaan dogge jo skript sa as:

sh greetme.sh gary> greetme.log

It symboal yn it boppesteande kommando jout de tekst "hallo gary" nei in triem mei de namme greetme.log.

Elke kear as jo it skript mei it symboal útfiere, skriuwt dizze ynhâld de ynhâld fan it útfier bestân. As jo ​​foarkomme om de triem oan te passen, ferfange de> mei >>.

Gearfetting

Jo moatte no skript tekst op it skerm te skriuwen en akseptearjenparameters akseptearje.