Débutan Gid Pou BASH - Pati 1 - Hello World

Gen anpil gid sou entènèt la ki montre ki jan yo kreye Scripts Shell lè l sèvi avèk BASH ak gid sa a gen pou objaktif pou bay yon vire yon ti kras diferan paske li se ekri pa yon moun ki gen eksperyans ti kras scripting scripting.

Koulye a, ou ta ka panse ke sa a se yon lide komik men mwen jwenn ke kèk gid pale ak ou tankou si ou se deja yon ekspè ak lòt gid pran twò lontan nan koupe nan kouri dèyè a.

Tou eksperyans mwen LINUX / UNIX korije se limite, mwen se yon pwomotè lojisyèl pa komès e mwen menm yon men dab nan lang scripting tankou PERL, PHP ak VBScript.

Pwen nan gid sa a se ke ou pral aprann jan mwen aprann ak nenpòt enfòmasyon mwen ranmase mwen pral pase sou ou.

Pou kòmanse

Gen evidamman yon anpil nan teyori ke mwen te ka pase sou ou dwat lwen tankou ki dekri diferan kalite koki ak avantaj ki genyen nan lè l sèvi avèk BASH sou KSH ak CSH.

Pifò moun lè yo aprann yon bagay nouvo vle sote nan ak kòmanse ak kèk leson pratik premye ak ak sa nan tèt ou mwen pa pral fè ou ak trivia ki pa enpòtan kounye a.

Tout sa ou bezwen pou swiv gid sa a se yon editè tèks ak yon tèminal kouri BASH (koki a default sou pifò Linux distribisyon).

Editè tèks

Lòt gid ke mwen li te sijere ke ou bezwen yon editè tèks ki gen ladan kodaj koulè nan kòmandman ak editè yo rekòmande yo se swa VIM oswa EMACS .

Kod Koulè se bèl jan li mete aksan sou kòmandman jan ou tape yo men pou debutan la absoli ou ta ka pase premye semèn yo aprann VIM ak EMACS san yo pa ekri yon sèl liy nan kòd.

Soti nan de mwen prefere EMACS men yo dwe onèt mwen ta pito sèvi ak yon editè senp tankou nano , gedit oswa fèy papye.

Si w ap ekri Scripts sou òdinatè pwòp ou yo ak ou konnen ou ap toujou gen aksè a yon anviwònman grafik Lè sa a, ou ka chwazi editè a ki travay pi byen pou ou ak li ka swa grafik tankou GEdit oswa yon editè ki kouri dirèk nan tèminal la tankou nano oswa vim.

Pou rezon ki nan gid sa a mwen pral sèvi ak nano jan li enstale natively sou majorite nan Linux distribisyon ak li se poutèt sa gen anpil chans ke ou pral gen aksè a li.

Ouvri yon Fenèt Fenèt la

Si w ap itilize yon distribisyon Linux ak Desktop grafik tankou Linux Mint oswa Ubuntu ou ka louvri yon fenèt tèminal pa peze CTRL + ALT + T.

Ki kote yo mete Scripts ou

Pou rezon sa a leson patikilye ou ka mete Scripts ou nan yon katab anba katab lakay ou.

Nan yon fenèt tèminal asire w ke ou nan katab lakay ou pa tape lòd sa a:

CD ~

Kòmandman cd la kanpe pou anyè chanjman ak tilde la (~) se yon chemen kout pou katab lakay ou.

Ou ka tcheke ke ou se nan kote ki kòrèk la lè ou tape lòd sa a:

pwd

Kòmandman pwd la ap di ou aktyèl ou ap travay anyè (kote ou ye nan anyè pyebwa). Nan ka mwen an li tounen / lakay / gary.

Koulye a, evidamman ou pa pral vle mete Scripts ou tou dwat nan folder nan kay la pou kreye yon katab ki rele Scripts pa tape lòd sa a.

mkdir Scripts

Chanje nan kat Scripts nouvo pa tape lòd sa a:

CD Scripts

Premye Scripts ou

Li se òdinè lè yo aprann ki jan nan pwogram nan fè pwogram nan premye tou senpleman pwodiksyon mo sa yo "Hello World".

Soti nan kat Scripts ou antre nan lòd sa a:

nano helloworld.sh

Koulye a, antre kòd sa a nan fenèt nano.

#! / bin / bach eko "hello mond"

Press CTRL + O pou sove dosye a ak Ctrl + X soti nano.

Script la tèt li se te fè leve jan sa a:

Nan #! / Bin / bach bezwen yo dwe enkli nan tèt la nan tout Scripts yo ou ekri jan li pèmèt entèprèt ak sistèm nan fonksyone konnen ki jan yo okipe dosye a. Fondamantalman jis sonje mete l 'nan ak bliye sou rezon ki fè ou fè li.

Liy nan dezyèm gen yon sèl lòd ki rele eko ki rann tèks la ki imedyatman swiv li.

Remake byen ke si ou vle montre plis pase yon mo ou bezwen itilize quotes doub (") alantou mo yo.

Ou ka kounye a kouri script la lè ou tape lòd sa a:

sh helloworld.sh

Mo "hello mond lan" ta dwe parèt.

Yon lòt fason pou kouri Scripts se jan sa a:

./helloworld.sh

Chans yo se ke si ou kouri lòd sa a nan tèminal ou dwat lwen ou pral jwenn yon erè autorisations.

Pou bay otorizasyon pou yo ranpli script la nan fason sa a di sa ki annapre yo:

sudo chmod + x helloworld.sh

Se konsa, sa ki aktyèlman rive la? Poukisa ou te kapab kouri sh helloworld.sh san yo pa chanje autorisation men kouri ./helloworld.sh lakòz yon pwoblèm?

Metòd an premye chaje entèprèt la bach ki pran helloworld.sh la kòm yon opinyon ak travay deyò ki sa fè ak li. Entèprèt la bach deja gen autorisations nan kouri ak jis bezwen kouri kòmandman yo nan script la.

Metòd Dezyèm pèmèt sistèm nan fonksyone travay sou sa yo dwe fè ak script la ak Se poutèt sa li mande pou yon ti jan ègzèkutabl yo nan lòd yo egzekite.

Script ki anwo la a te ok men sa k ap pase si ou vle montre sitasyon pi ba yo?

Gen divès fason pou reyalize sa. Pou egzanp ou ka mete yon backslash anvan mak pi ba yo jan sa a:

eko \ "hello mond \"

Sa a pral pwodwi randman "hello mond lan".

Tann yon minit si, ki sa si ou vle montre \ "hello mond \"?

Oke ou ka chape anba karaktè yo chape kòm byen

eko \\ "\" hello mond \\ "\"

Sa a pral pwodwi pwodiksyon an "hello mond".

Koulye a, mwen konnen sa w ap panse. Men, mwen reyèlman vle montre \\ "\" hello mond \\ "\"

Lè l sèvi avèk eko ak tout karaktè sa yo chape ka jwenn byen komik. Gen yon lòd altènatif ou ka itilize rele printf.

Pa egzanp:

printf '% s \ n' \\ "\" hello mond \\ "\" '

Remake byen ke tèks la nou vle montre se nan ant quotes sèl. Ekip printf la rann tèks ki soti nan script ou. S la vle di ke li pral montre yon fisèl, \ n rezilta yon liy nouvo.

Rezime

Nou pa gen reyèlman kouvri anpil tè nan yon pati men men èspere ke ou gen premye script ou ap travay.

Nan pati nan pwochen nou pral gade nan amelyore sou script la mond alo yo montre tèks nan diferan koulè, aksepte ak okipe paramètres opinyon, varyab ak fè kòmantè kòd ou a.