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:
pwdIl-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 mkdirTibdil fil-folder ġdid ta 'skripts billi jtajpja l-kmand li ġej:
skripts cdEwwel 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.shIssa 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.shIl-kliem "hello world" għandhom jidhru.
Mod ieħor biex titħaddem skripts huwa kif ġej:
./helloworld.shIċ-ċ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.shAllura 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.