Bag-o nga Giya Ngadto sa BASH - Bahin 1 - Hello World

Adunay daghan nga mga giya sa internet nga nagpakita kon unsaon paghimo Shell nga mga script gamit ang BASH ug kini nga giya nagtumong sa paghatag sa usa ka gamay nga nagkalainlain nga spin tungod kay gisulat kini sa usa ka tawo nga adunay gamay nga kasinatian sa scripting sa shell.

Karon tingali maghunahuna ka nga kini usa ka buang nga ideya apan akong nahibal-an nga ang pipila ka mga giya nakigsulti kanimo ingon nga ikaw usa na ka eksperto ug uban pang mga giya nga dugay na kaayo aron sa pagputol sa paggukod.

Samtang ang akong LINUX / UNIX shell scripting nga kasinatian limitado, ako usa ka software developer sa pamatigayon ug ako usa ka dab kamot sa scripting languages ​​sama sa PERL, PHP ug VBScript.

Ang punto niini nga giya mao nga ikaw makakat-on samtang ako nagkat-on ug ang bisan unsa nga kasayuran nga akong kuhaon ipasa ko kanimo.

Pagsugod

Adunay dayag nga daghang teoriya nga mahimo kong ipasa dayon nimo sama sa paghulagway sa nagkalainlain nga matang sa kabhang ug mga bentaha sa paggamit sa BASH sa KSH ug CSH.

Kadaghanan sa mga tawo sa dihang magkat-on og usa ka butang nga bag-o nga gusto nga moambak ug magsugod uban sa pipila ka praktikal nga mga leksyon una ug uban sa hunahuna nga dili ko nimo dad-an sa mga trivia nga dili importante karon dayon.

Ang tanan nga imong gikinahanglan alang sa pagsunod niini nga giya mao ang usa ka text editor ug usa ka terminal nga nagdagan sa BASH (ang default nga kabhang sa kadaghanan sa mga distribusyon sa Linux).

Mga Editorador sa Teksto

Ang ubang mga giya nga akong nabasa misugyot nga kinahanglan nimo ang usa ka editor sa teksto nga naglakip sa color coding sa mga sugo ug ang girekomendar nga mga editor mao ang VIM o EMACS .

Ang kolor nga coding nindot samtang kini nagpakita sa mga sugo samtang imo kining gisulat apan alang sa hingpit nga sinugdanan nga mahimo nimong igugol sa unang pipila ka mga semana nga nagtuon sa VIM ug EMACS nga walay sinulat nga usa ka linya sa kodigo.

Gawas sa duha gipalabi nako ang EMACS apan nga matinud-anon akong gipalabi ang paggamit sa usa ka yano nga editor sama sa nano , gedit o leafpad.

Kung nagsulat ka og mga script sa imong kaugalingong kompyuter ug nahibal-an nimo nga ikaw kanunay adunay access sa usa ka graphical environment unya mahimo nimo pilion ang editor nga labing maayo alang kanimo ug mahimo kini nga graphical sama sa GEdit o editor nga diretso sa terminal sama sa nano o vim.

Alang sa mga katuyoan niini nga giya magamit ko ang nano nga gi-install nga natively sa kadaghanan sa mga distribusyon sa Linux ug mao nga lagmit nga makabaton ka niini.

Pag-abli sa Terminal Window

Kon ikaw naggamit sa usa ka distribusyon sa Linux nga adunay graphical desktop sama sa Linux Mint o Ubuntu mahimo ka magbukas sa terminal window pinaagi sa pagputol sa CTRL + ALT + T.

Kung asa ibutang ang imong mga script

Alang sa mga katuyoan niini nga pagtuon mahimo nimo ibutang ang imong mga script sa usa ka folder ubos sa imong home folder.

Sulod sa usa ka terminal nga bintana siguroha nga naa ka sa imong home folder pinaagi sa pag-type sa mosunod nga sugo:

cd ~

Ang cd nga mando nagbarog alang sa directory change ug ang tilde (~) usa ka shortcut alang sa imong home folder.

Mahimo nimong susihon nga anaa ka sa husto nga lugar pinaagi sa pag-type sa mosunod nga sugo:

pwd

Ang pwd nga sugo magsulti kanimo sa imong karon nga working directory (diin ikaw anaa sa directory tree). Sa akong kahimtang kini mibalik / balay / gary.

Karon klaro nga dili nimo gusto nga ibutang ang imong mga script nga diretso sa home folder aron paghimo og usa ka folder nga gitawag og mga script pinaagi sa pag-type sa mosunod nga sugo.

mkdir skrip

Pagbalhin ngadto sa bag-ong mga script sa folder pinaagi sa pag-type sa mosunod nga sugo:

cd scripts

Ang Inyong Unang Kasulatan

Naandan kini sa dihang ang pagkat-on kung unsaon pag-program ang paghimo sa una nga programa igsusulud lamang ang mga pulong nga "Hello World".

Gikan sa sulod sa imong mga folder sa script mosulod ang mosunod nga sugo:

nano helloworld.sh

Karon isulod ang mosunod nga code ngadto sa window sa nano.

#! / bin / bash echo "hello world"

Tuploka ang CTRL + O aron maluwas ang file ug CTRL + X aron mogawas sa nano.

Ang script mismo nahimo ingon sa mosunod:

Ang #! / Bin / bash kinahanglan nga ilakip sa ibabaw sa tanan nga mga script nga imong isulat ingon nga kini naghatag sa mga tighubad ug sa operating system nga mahibal-an kung unsaon pagdumala sa file. Hinumdomi lang nga ibutang kini ug kalimti kon nganong imo kining gibuhat.

Ang ikaduha nga linya adunay usa ka sugo nga gitawag nga echo nga nagpagawas sa teksto nga nagsunod dayon niini.

Timan-i nga kung gusto nimo ipakita ang labaw sa usa ka pulong kinahanglan nimo gamiton ang double quotes (") sa palibot sa mga pulong.

Mahimo nimong modagan ang script pinaagi sa pag-type sa mosunod nga sugo:

sh helloworld.sh

Ang mga pulong nga "hello world" kinahanglan magpakita.

Ang laing paagi sa pagdumala sa mga script mao ang mosunod:

./helloworld.sh

Ang mga kahigayunan mao nga kon imong ipadagan ang maong sugo sa imong terminal dayon makuha nimo ang permiso nga sayup.

Aron paghatag sa mga permiso sa pagdagan sa script niining paagiha i-type ang mosunod:

sudo chmod + x helloworld.sh

Unsa man ang tinuod nga nahitabo didto? Nganong nakahimo ka sa pagdagan sa helloworld.sh nga walay pag-usab nga permiso apan nagdagan. / Shelloworld.sh hinungdan sa usa ka isyu?

Ang unang pamaagi nag-load sa bash interpreter nga nagkinahanglan sa impyerno nga kalibutan.sh isip usa ka input ug naglihok kung unsay buhaton niini. Ang bash interpreter naay permiso sa pagdagan ug kinahanglan lamang nga modagan ang mga sugo sa script.

Ang ikaduha nga pamaagi nagpahigayon sa operating system kung unsa ang buhaton sa script ug busa kini nagkinahanglan sa usa ka gamay nga mahimo aron ipatuman.

Ang script sa ibabaw mao ang ok apan unsa ang mahitabo kung gusto nimo ipakita ang marka sa mga kinutlo?

Adunay nagkalainlaing mga paagi aron makab-ot kini. Pananglitan mahimo nimong ibutang ang usa ka backslash sa dili pa ang mga marka sa mosunod ingon niini:

echo \ "hello world \"

Makapatungha kini sa "hello world" nga output.

Hulat sa usa ka minuto bisan kung unsa, kung gusto nimo ipakita ang \ "hello world \"?

Maayo nga makalikay ka usab sa mga karakter nga makagawas

echo \\ "\" hello world \\ "\"

Makapatungha kini sa output \ "hello world \".

Karon nahibal-an ko ang imong gihunahuna. Apan gusto ko nga ipakita ang \\ "\" hello world \\ "\"

Ang paggamit sa echo uban sa tanan nga mga makaluwas nga mga karakter mahimo nga naulaw. Adunay usa ka alternatibong sugo nga imong magamit nga gitawag nga printf.

Pananglitan:

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

Timan-i nga ang teksto nga gusto natong ipasundayag anaa sa tunga-tunga nga mga kinutlo. Ang printf nga command nagpagawas sa teksto gikan sa imong script. Ang% s nagkahulugan nga kini magpakita sa usa ka hilo, ang n adunay usa ka bag-ong linya.

Sumaryo

Wala pa kami nasakop sa usa ka bahin sa usa ka bahin apan gilauman nga anaa ang imong unang script nga nagtrabaho.

Sa sunod nga bahin, atong tan-awon ang pagpalambo sa hello world script aron pagpakita sa teksto sa nagkalainlaing kolor, pagdawat ug pagdumala sa mga parameter sa pag-input, mga variable ug pagkomento sa imong code.