Beginners Guide Pikeun BASH - parameter Input

Wilujeng sumping di 2nd bagian tina Guide Beginners Pikeun runtuyan BASH nu unik di yén éta téh hiji-hijina BASH tutorial ditulis ku pemula pikeun beginners.

Pamiarsa Buku ieu bakal ngawangun nepi pangaweruh maranéhna salaku I ngawangun nepi pangaweruh mah mudahan ku tungtung eta sakabeh urang bakal tiasa nyerat sabagian Aksara cukup palinter.

Minggu kamari kuring katutupan nyieun Aksara mimiti Anjeun nu saukur ditampilkeun kecap "Hello Dunya". Ieu nyertakeun subjék kayaning rai téks, kumaha carana muka jandela terminal, dimana nempatkeun Aksara anjeun, kumaha carana nembongkeun kecap "Hello Dunya" na sababaraha titik finer on karakter ngewa kayaning tanda petik ( "").

minggu ieu Kuring keur akang nutupan parameter input. Aya Panungtun lianna nu ngajar nurun ieu hal tapi neangan aranjeunna luncat kana sababaraha barang tingkat cukup lemah sareng meureun nyadiakeun teuing informasi.

Naon Dupi parameter?

Dina "Hello Dunya" Aksara ti tutorial panungtungan ieu kabeh pisan statis. naskah henteu bener ngalakukeun loba pisan.

Kumaha urang bisa ningkatkeun dina "Hello Dunya" Aksara?

Kumaha upami hiji naskah anu greets baé anu ngalir deui? Gantina nyebutkeun "Hello Dunya" éta bakal ngomong "Hello Gary", "Halo Tim" atawa "Hello Dolly".

Tanpa kamampuhan pikeun nampa parameter input kami bakal perlu nulis tilu Aksara "hellogary.sh", "hellotim.sh" jeung "hellodolly.sh".

Ku sahingga Aksara kami maca parameter input bisa ngagunakeun hiji Aksara mun salam saha.

Jang ngalampahkeun ieu muka nepi jandela terminal (Ctrl + Alt + T) teras napigasi ka folder Aksara anjeun ku ngetikkeun di handap: ( ngeunaan paréntah cd )

cd Aksara

Jieun Aksara anyar disebut greetme.sh ku ngetikkeun di handap: ( ngeunaan paréntah touch )

toél greetme.sh

Buka naskah dina editor favorit anjeun ku ngetikkeun handap: ( ngeunaan paréntah nano )

nano greetme.sh

Lebetkeun téks di handap dina nano:

#! / bin / bash bahana "pantun $ @"

Pencét Ctrl jeung O nyimpen file lajeng Ctrl sarta X nutup file.

Pikeun ngajalankeun naskah asupkeun di handap kana garis paréntah ngaganti kalayan ngaran anjeun.

sh greetme.sh

Mun kuring ngajalankeun naskah kalawan ngaran kuring eta mintonkeun kecap "Hello Gary".

Garis kahiji boga garis #! / Bin / bash nu dipaké pikeun ngaidentipikasi file salaku Aksara bash.

Garis kadua ngagunakeun pernyataan bahana keur bahana kecap pantun lajeng aya nu aneh notasi $ @. ( Paréntah ngeunaan bahana )

The $ @ expands pikeun nembongkeun unggal parameter yen ieu diasupkeun sapanjang jeung ngaran Aksara. Ku kituna lamun diketik "sh greetme.sh Tim" kecap "pantun Tim" bakal dipintonkeun. Lamun diketik "greetme.sh Tim Smith" lajeng kecap "pantun Tim Smith" bakal dipintonkeun.

Ieu bisa jadi nice pikeun Aksara greetme.sh mun ngan nyebutkeun pantun maké ngan nami kahiji. Taya sahijieun nyebutkeun "pantun Gary newell" nalika aranjeunna papanggih abdi, maranéhna bisa ngomong "pantun Gary" leuwih tiheula.

Hayu urang ngaganti naskah meh ngan ngagunakeun parameter munggaran. Buka up skrip greetme.sh di nano ku ngetikkeun di handap:

nano greetme.sh

Ngarobah naskah meh berbunyi saperti kieu:

#! / bin / bash bahana "pantun $ 1"

Simpen naskah ku mencét Ctrl jeung O lajeng kaluar ku mencét Ctrl sarta X.

Ngajalankeun skrip ditémbongkeun saperti dihandap (ngaganti ngaran kuring jeung Hormat):

sh greetme.sh Gary newell

Lamun anjeun ngajalankeun naskah éta ngan saukur bakal ngomong "pantun Gary" (atawa mudahan "pantun" na naon ngaran anjeun.

1 sanggeus $ simbol dasarna nyebutkeun ka paréntah bahana, nganggo parameter munggaran. Lamun ngaganti $ 1 ku $ 2 mangka bakal nembongkeun "pantun newell" (atawa naon surname anjeun).

Saliwatan lamun ngaganti $ 2 ku $ 3 jeung lumpat naskah kalawan ngan 2 parameter output saukur bakal jadi "Hello".

Kasebut nyaéta dimungkinkeun pikeun nembongkeun jeung nanganan jumlah parameters sabenerna diasupkeun tur di tutorials engké kuring bakal némbongkeun cara nganggo count parameter pikeun tujuan validasi.

Pikeun nembongkeun jumlah parameters diasupkeun muka naskah greetme.sh (nano greetme.sh) jeung ngajadikeun amandemen téks sakumaha kieu:

#! / bin / bash bahana "Anjeun diasupkeun $ # ngaran" bahana "pantun $ @"

Pencét Ctrl jeung O nyalametkeun naskah sarta Ctrl sarta X kaluar nano.

The $ # dina 2nd garis mintonkeun jumlah parameters diasupkeun.

Kituna tebih sakabéh ieu geus novél tapi teu pisan mangpaat. Anu perlu hiji naskah anu saukur mintonkeun "pantun"?

The pamakéan nyata pikeun pernyataan bahana nyaeta nyadiakeun kaluaran verbose na bermakna pikeun pamaké. Lamun tiasa ngabayangkeun nu rék ngalakukeun hal nyusahkeun nu ngalibatkeun sababaraha angka serius crunching jeung manipulasi file / folder bakal mangpaat pikeun nembongkeun ka pamaké naon anu lumangsung unggal hambalan tina jalan.

Sacara jelas, parameter input nyieun Aksara Anjeun interaktif. Tanpa parameter input Anjeun bakal peryogi puluhan Aksara sadayana ngalakonan hal sarupa pisan tapi kalawan ngaran rada béda.

Kalayan sakabéh ieu dina pikiran aya sababaraha parameter input mangpaat séjén yén éta téh mangrupakeun ide nu sae uninga jeung Abdi bakal ngawengku kabeh dina hiji snippet kode.

Buka up Aksara greetme.sh anjeun sarta ngajadikeun amandemen eta kieu:

! # / bin / bash bahana "Ngaran koropak: $ 0" bahana "Prosés ID: $$" bahana "---------------------------- --- "bahana" Anjeun diasupkeun $ # ngaran "bahana" pantun $ @ "

Pencét Ctrl jeung O nyimpen file jeung Ctrl sarta X kaluar.

Ayeuna Jalankeun naskah (ngaganti kalayan ngaran anjeun).

sh greetme.sh

waktos Ieu naskah mintonkeun di handap:

Ngaran koropak: greetme.sh Prosés ID: 18595 ------------------------------ anjeun diasupkeun 2 ngaran pantun Gary newell

The $ 0 on garis mimiti naskah mintonkeun nami skrip anjeun ngajalankeun. Catetan yen ieu dollar enol teu dollar o.

The $$ on garis kadua mintonkeun id prosés tina Aksara anjeun ngajalankeun. Naha ieu mangpaat? Mun anjeun ngajalankeun hiji Aksara dina foreground nu bisa ngabatalkeun eta ku saukur mencét Ctrl jeung C. Lamun lumpat skrip di tukang na eta dimimitian looping sarta ngalakonan hal anu sarua leuwih sarta leuwih atawa dimimitian ngabalukarkeun ruksakna sistem Anjeun Anjeun bakal peryogi maehan eta.

Pikeun maéhan hiji Aksara ngajalankeun dina latar tukang nu peryogi di id prosés naskah. moal bakal deui jadi alus lamun naskah masihan proses id salaku bagian tina kaluaran na. ( Ngeunaan ps na maéhan Paréntah )

Tungtungna saméméh kuring rengse kalayan jejer ieu Kuring hayang ngabahas ngeunaan mana output mana. Unggal waktos naskah geus ngajalankeun sahingga tebih output geus ditampilkeun dina layar.

Ieu rada umum pikeun kaluaran Aksara bisa ditulis ka output file. Jang ngalampahkeun ieu ngajalankeun skrip anjeun saperti kieu:

sh greetme.sh Gary> greetme.log

The> simbol dina paréntah luhur outputs téks "pantun Gary" ka file disebut greetme.log.

Unggal waktos Anjeun ngajalankeun naskah jeung simbol> eta nimpa eusi file kaluaran. Lamun bakal resep ka append mun file nu ngaganti> kalawan >>.

singgetan

Ayeuna kudu bisa nulis téks ka layar tur nampa parameter input.