Gwida għall-Bidu għal BASH - Parti 1 - Hello World

Hemm ħafna gwidi fuq l-internet li juru kif tinħoloq skripts Shell bl-użu ta 'BASH u din il-gwida għandha l-għan li tagħti spin kemmxejn differenti għaliex hija miktuba minn xi ħadd li għandu ftit skritturi tal-qoxra.

Issa inti tista 'taħseb li din hija idea iblah imma nsib li xi gwidi tkellimek bħal li kieku inti diġà espert u gwidi oħra jieħdu wisq żmien biex jaqtagħhom il-ġiri.

Filwaqt li l-esperjenza tal-kitba tal-qoxra LINUX / UNIX tiegħi hija limitata, jiena żviluppatur ta 'softwer mill-kummerċ u jiena dab bl-idejn f'lingwi ta' kitba bħal PERL, PHP u VBScript.

Il-punt ta 'din il-gwida huwa li titgħallem kif titgħallem u kull informazzjoni li nirċievi ser jgħaddi lilek.

Kif tibda

Ovvjament hemm ħafna teorija li nista 'ngħaddi lilek minnufih bħad-deskrizzjoni tat- tipi differenti ta' qoxra u l-vantaġġi ta 'l-użu ta' BASH fuq KSH u CSH.

Ħafna nies meta jkunu qed jitgħallmu xi ħaġa ġdida jridu jaqbżu u jibdew b'xi lezzjonijiet prattiċi l-ewwel u b'dak il-ħsieb ma jienx ser tħejji trivia li mhux importanti issa.

Kulma għandek bżonn biex issegwi din il-gwida hija editur tat-test u terminal running BASH (il-qoxra default fuq ħafna distribuzzjonijiet ta 'Linux).

Edituri tat-Test

Gwidi oħra li qrajt issuġġerew li għandek bżonn editur tat-test li jinkludi l-kodiċi tal-kulur tal-kmandi u l-edituri rrakkomandati huma VIM jew EMACS .

Il-kodifikazzjoni tal-kulur hija sbieħ peress li tenfasizza l-kmandi kif tniżżilhom imma għall-bdiewa assoluta tista 'tqatta' l-ewwel ftit ġimgħat tagħlim VIM u EMACS mingħajr ma tikteb linja waħda ta 'kodiċi.

Mit-tnejn nippreferi l-EMACS iżda biex inkun onest nippreferi nuża editur sempliċi bħal nano , gedit jew leafpad.

Jekk qed tikteb skripts fuq il-kompjuter tiegħek u taf li dejjem ikollok aċċess għal ambjent grafiku allura tista 'tagħżel l-editur li jaħdem l-aħjar għalik u jista' jkun grafiku bħal GEdit jew editur li jibda direttament fit-terminal bħal nano jew vim.

Għall-finijiet ta 'din il-gwida nkun nuża nano peress li huwa installat nattivament fuq il-maġġoranza tad-distribuzzjonijiet ta' Linux u għalhekk huwa probabbli li jkollok aċċess għaliha.

Ftuħ ta 'Tieqa Terminali

Jekk qed tuża distribuzzjoni Linux ma 'desktop grafiku bħal Linux Mint jew Ubuntu tista' tiftaħ tieqa tat-terminal billi tagħfas CTRL + ALT + T.

Fejn Tikteb Skripts Tiegħek

Għall-finijiet ta 'dan it-tutorja tista' tpoġġi l-iskripts tiegħek f'folder taħt il-folder tad-dar tiegħek.

Fi ħdan tieqa tat-terminal aċċerta ruħek li tkun fil-folder tad-dar tiegħek billi ttajpja l-kmand li ġej:

cd ~

Il-kmand ta 'cd huwa d-direttorju tal-bidla u t-tilde (~) huwa shortcut għall-folder tad-dar tiegħek.

Tista 'tiċċekkja li int qiegħed fil-post korrett billi ttajpja l-kmand li ġej:

pwd

Il-kmand pwd jgħidlek id-direttorju tax-xogħol preżenti tiegħek (fejn qiegħed fis-siġra tad-direttorju). Fil-każ tiegħi rritorna / dar / gary.

Issa ovvjament inti ma tridx tpoġġi l-iskripts tiegħek direttament fil-folder tad-dar biex toħloq folder imsejħa skripts billi ttajpja l-kmand li ġej.

skripts mkdir

Tibdil fil-folder ġdid ta 'skripts billi jtajpja l-kmand li ġej:

skripts cd

Ewwel Skritt Tiegħek

Huwa soltu meta titgħallem kif tipprogramma biex tagħmel l-ewwel programm sempliċement toħroġ il-kliem "Hello World".

Minn ġewwa l-kitba tal-iskripts tidħol fil-kmand li ġej:

nano helloworld.sh

Issa daħħal il-kodiċi li ġej fit-tieqa nano.

#! / bin / bash echo "hello world"

Agħfas CTRL + O biex isalva l-fajl u CTRL + X biex toħroġ nano.

L-iskritt innifsu huwa magħmul kif ġej:

Il-#! / Bin / bash jeħtieġ li jiġi inkluż fil-parti ta 'fuq tal-iskripts li tikteb billi tikri l-interpreti u s-sistema operattiva taf kif timmaniġġa l-fajl. Bażikament biss ftakar li tpoġġiha fi u tinsa għaliex tagħmel dan.

It-tieni linja għandha kmand wieħed imsejjaħ eku li joħroġ it-test li immedjatament isegwih.

Innota li jekk trid turi iktar minn kelma waħda għandek tuża kwotazzjonijiet doppji (") madwar il-kliem.

Issa tista 'tmexxi l-iskritt billi ttajpja l-kmand li ġej:

sh helloworld.sh

Il-kliem "hello world" għandhom jidhru.

Mod ieħor biex titħaddem skripts huwa kif ġej:

./helloworld.sh

Iċ-ċansijiet huma li jekk tmexxi dak il-kmand fit-terminal tiegħek minnufih inti se tikseb żball ta 'permessi.

Biex tagħti permessi biex titħaddem l-iskrittura b'dan il-mod tip dan li ġej:

sudo chmod + x helloworld.sh

Allura dak fil-fatt ġara hemmhekk? Għaliex kellek kapaċi tmexxi sh helloworld.sh mingħajr ma tbiddel il-permessi iżda tmexxi ./helloworld.sh ikkawżat xi kwistjoni?

L-ewwel metodu jgħabbi l-interpretu tal-bash li jieħu l-helloworld.sh bħala kontribut u jaħdem x'għandu jsir miegħu. L-interpretu bash diġà għandu permessi biex imexxu u biss jeħtieġ li jmexxi l-kmandi fl-iskrittura.

It-tieni metodu jħalli s-sistema operattiva taħdem barra x'għandek tagħmel bl-iskritt u għalhekk teħtieġ ftit eżekutibbli sabiex tesegwixxi.

L-iskritt ta 'hawn fuq kien ok imma x'jiġri jekk trid turi l-virgoletti?

Hemm diversi modi biex jinkiseb dan. Per eżempju inti tista 'tpoġġi backslash qabel il-virgoletti kif ġej:

echo \ "hello world \"

Dan se jipproduċi l-output "hello world".

Stenna għal minuta għalkemm, x'jiġri jekk trid turi \ "hello world \"?

Ukoll tista 'tevita wkoll il-karattri tal-ħarba

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

Dan se jipproduċi l-output \ "hello world \".

Issa naf dak li qed taħseb. Imma jien verament irridu nuru \\ "\" hello world \\ "\"

L-użu ta 'eku ma' dawn il-karattri tal-ħarba kollha jista 'jkun pjuttost iblah. Hemm kmand alternattiv li tista 'tuża imsejħa printf.

Pereżempju:

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

Innota li t-test li rridu nuru huwa bejn kwotazzjonijiet singoli. Il-kmand printf joħroġ it-test mill-kitba tiegħek. Il-% s tfisser li se juri sekwenza, il-\ n toħroġ linja ġdida.

Sinteżi

Aħna ma rnexxilniex inħarsu ħafna fl-ewwel parti iżda nisperaw li jkollok l-ewwel iskrittura tax-xogħol tiegħek.

Fil-parti li jmiss se nħarsu lejn it-titjib fuq l-iskrittura tad-dinja tal-hello biex nuru t-test b'kuluri differenti, taċċetta u timmaniġġa parametri tal-input, varjabbli u tikkummenta l-kodiċi tiegħek.