Panduan Wiwitan Kanggo BASH - Parameter Input

Sugeng rawuh ing bagéan kaping 2 Pandhuan Wiwitan Kanggo seri BASH sing unik amarga iku mung tutorial BASH sing ditulis dening pemula kanggo pemula.

Panyuwun pandhuan iki bakal mbangun kawruh minangka aku mbangun kawruh lan muga-muga ing pungkasan iku kabeh kita bisa nulis sawetara skrip cukup pinter.

Minggu kepungkur aku nggawe skrip pisanan sing mung nampilake tembung "Hello World". Iku kalebu subyek kayata editors teks, cara mbukak jendela terminal, ngendi kanggo nulis skrip, cara kanggo nampilake tembung "Hello World" lan sawetara poin sing luwih becik ing karakter uwal kasebut kayata kuotasi ("").

Minggu iki aku bakal nutupi paramèter input. Ana panuntun liya sing mulangake bab iki, nanging aku nemokake dheweke bisa mlumpat menyang sawetara level sing luwih murah lan bisa nyedhiyakake informasi akeh banget.

Apa Parameter?

Ing skrip "Hello World" saka tutorial pungkasan iku kabeh banget statis. Aksara iki ora akeh.

Kepiye carane bisa nambah naskah "Hello World"?

Apa babagan naskah sing ngucapake wong sing nglakoni? Tinimbang ngucapake "Hello World" bakal ngomong "Hello Gary", "Hello Tim" utawa "Hello Dolly".

Tanpa kemampuan kanggo nampa parameter input, kita kudu nulis telung tulisan "hellogary.sh", "hellotim.sh" lan "hellodolly.sh".

Kanthi ngijini skrip kanggo maca paramèter input, kita bisa migunakaké salah sawijining naskah kanggo nyritakaké sapa waé.

Kanggo nindakake iki mbukak jendhela terminal (CTRL + ALT + T) lan navigasi menyang folder skrip kanthi ngetik: ( babagan cd command )

cd skrip

Nggawe script anyar sing disebut greetme.sh kanthi ngetik: ( babagan printah tutul )

tutul greetme.sh

Bukak script ing editor favorit sampeyan kanthi ngetik: ( babagan perintah nano )

nano greetme.sh

Ketik teks ing ngisor iki ing nano:

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

Pencet CTRL lan O kanggo nyimpen berkas banjur CTRL lan X kanggo nutup berkas kasebut.

Kanggo mbukak script, ketikake ing ngisor iki menyang baris printah ngganti nganggo jeneng sampeyan.

sh greetme.sh

Yen aku mbukak script nganggo jenengku, nampilake tembung "Hello Gary".

Baris sepisanan nduweni baris #! / Bin / bash sing digunakake kanggo ngenali berkas minangka skrip bash.

Baris kapindho nggunakake pernyataan gema kanggo nyuarakke tembung hello lan banjur ana $ @ notasi aneh. ( babagan printah echo )

$ @ Memperluas kanggo nampilake kabeh parameter sing diketik bebarengan karo jeneng naskah. Supaya sampeyan ngetik "tim sh greetme.sh" tembung "hello tim" bakal ditampilake. Yen sampeyan ngetik "tim smith greetme.sh", tembung "hello tim smith" bakal ditampilake.

Bisa uga becik kanggo naskah salam kanggo nyritakake mung nggunakake jeneng pisanan. Ora ana wong sing ngomong "hello gary newell" nalika ketemu karo aku, bisa ngomong "hello gary" sanadyan.

Ayo diganti skrip supaya mung nggunakake parameter pisanan. Bukak script greetme.sh ing nano kanthi ngetik:

nano greetme.sh

Ngganti naskah kasebut kaya sing kasebut ing ngisor iki:

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

Simpen naskah kanthi mencet CTRL lan O banjur metu kanthi mencet CTRL lan X.

Jalanake naskah kaya dituduhake ing ngisor iki (ganti jeneng karo sampeyan):

sh greetme.sh gary newell

Nalika sampeyan mbukak script kasebut mung bisa ngomong "hello gary" (utawa mugia "hello" lan punapa mawon asma panjenengan.

Ing 1 sawise simbol $ gunane nyatakake perintah echo, gunakake parameter pertama. Yen ngganti $ 1 kanthi $ 2, banjur bakal nampilake "hello newell" (utawa apa wae jenengmu).

Kajaba yen sampeyan ngganti $ 2 kanthi $ 3 lan mlayu skrip kanthi mung 2 paramèter, output mung bakal "Hello".

Sampeyan bisa nampilake lan nangani jumlah paramèter sing bener bener lan ing tutorial sabanjure aku bakal nuduhake carane nggunakake count parameter kanggo tujuan validasi.

Kanggo nampilake jumlah paramèter sing digawé mbukak skrip greetme.sh (nano greetme.sh) lan ngrubah teks kasebut kaya mangkéné:

#! / bin / bash echo "sampeyan mlebu $ # names" echo "hello $ @"

Pencet CTRL lan O kanggo nyimpen naskah lan CTRL lan X kanggo metu saka nano.

Ing $ # ing baris 2 nuduhake nomer parameter sing dipateni.

Mangkono adoh kabeh iki wis novel nanging ora banget migunani. Sapa sing butuh naskah sing mung nampilake "hello"?

Panggunaan nyata kanggo pernyataan echo yaiku nyedhiyakake output sing teges lan artine kanggo pangguna. Yen sampeyan bisa mbayangno yen sampeyan pengin nglakoni apa-apa rumit sing nyebabake sawetara crunching nomer serius lan manipulasi berkas / folder, sampeyan bakal migunani kanggo nampilake menyang pangguna apa sing kedadeyan saben langkah.

Miturut kontras, paramèter input nggawe naskah interaktif. Tanpa paramèter input, sampeyan bakal butuh puluhan naskah sing kabeh nglakoni bab sing padha, nanging kanthi jeneng sing béda-béda.

Kanthi kabeh iki ing atine ana sawetara parameter input migunani liyane sing apik kanggo ngerti lan aku bakal nyakup kabeh kasebut ing salah siji potongan kode.

Bukak script greetme.sh lan mbenake kaya ing ngisor iki:

#! / bin / bash echo "Nama file: $ 0" echo "ID proses: $$" echo "---------------------------- --- "echo" sampeyan mlebu $ # jeneng "echo" hello $ @ "

Pencet CTRL lan O kanggo nyimpen file lan CTRL lan X kanggo metu.

Saiki Jalanake script (ganti jeneng sampeyan).

sh greetme.sh

Wektu iki script nampilake ing ngisor iki:

Jeneng berkas: greetme.sh Proses ID: 18595 ------------------------------ sampeyan ngetik 2 jeneng hello gary newell

Ing $ 0 ing baris pisanan saka script nampilake jeneng script sampeyan mlaku. Elinga yen dollar nol lan ora dollar.

$ $$ ing baris kapindho nuduhake id proses naskah sing mlaku. Apa iki migunani? Yen sampeyan nganggo script ing foreground sampeyan bisa mbatalake kanthi mung mencet CTRL lan C. Yen sampeyan mbukak script ing latar mburi lan miwiti looping lan dilakoni bab sing padha liwat utawa liwat utawa miwiti nyebabake karusakan sistem sampeyan bakal perlu kanggo mateni.

Kanggo mateni script sing mlaku ing latar mburi sampeyan butuh id proses skrip. Bakal ora becik yen naskah menehi id proses minangka bagéan saka output. ( babagan ps lan mateni perintah )

Akhire sadurunge aku rampung karo topik iki aku pengin mbahas babagan ngendi output dadi. Saben wektu script wis mlaku, output wis ditampilake ing layar.

Iku cukup umum kanggo output skrip kanggo ditulis menyang file output. Kanggo nindakake iki, lakoni script sampeyan kaya mangkene:

sh greetme.sh gary> greetme.log

Simbol ing ndhuwur kasebut ngasilake tulisan "hello gary" menyang file sing disebut greetme.log.

Saben-saben sampeyan mbukak script kanthi simbol kasebut nimpa isi file output. Yen sampeyan luwih seneng nambah file diganti nganggo >>.

Ringkesan

Sampeyan saiki kudu bisa nulis teks menyang layar lan nampa parameter input.