Canllaw i BASH Dechreuwyr - Rhan 1 - Hello World

Mae llawer o ganllawiau ar y rhyngrwyd yn dangos sut i greu sgriptiau Shell gan ddefnyddio BASH a nod y canllaw hwn yw rhoi sbin ychydig yn wahanol oherwydd ei fod wedi'i ysgrifennu gan rywun nad oes ganddo lawer o brofiad sgriptio cregyn.

Nawr efallai y credwch fod hwn yn syniad gwirion, ond dwi'n canfod bod rhai canllawiau'n siarad â chi fel pe bai eisoes yn arbenigwr a bod canllawiau eraill yn cymryd gormod o amser i dorri'r camgymeriad.

Er bod fy mhrofiad sgriptio cuddio LINUX / UNIX yn gyfyngedig, dwi'n ddatblygwr meddalwedd trwy fasnach ac rwyf yn gyfrwng llaw ar ieithoedd sgriptio fel PERL, PHP a VBScript.

Pwynt y canllaw hwn yw y byddwch yn dysgu wrth i mi ddysgu ac unrhyw wybodaeth rwy'n ei godi, byddaf yn ei drosglwyddo i chi.

Dechrau arni

Yn amlwg, mae llawer o theori y gallwn ei drosglwyddo i chi ar unwaith, fel disgrifio'r gwahanol fathau o gregen a'r manteision o ddefnyddio BASH dros CAH a CSH.

Mae'r rhan fwyaf o bobl wrth ddysgu rhywbeth newydd eisiau neidio i mewn a dechrau gyda rhai gwersi ymarferol yn gyntaf, a chyda hynny mewn golwg, dydw i ddim yn mynd â'ch diddymu chi sydd ddim yn bwysig ar hyn o bryd.

Y cyfan sydd ei angen arnoch ar gyfer dilyn y canllaw hwn yw golygydd testun a derfynell sy'n rhedeg BASH (y gregyn diofyn ar y rhan fwyaf o ddosbarthiadau Linux).

Golygyddion Testun

Mae canllawiau eraill yr wyf wedi eu darllen wedi awgrymu bod angen olygydd testun arnoch sy'n cynnwys codio lliwiau gorchmynion ac mae'r golygyddion a argymhellir naill ai yn VIM neu'n EMACS .

Mae codio lliw yn braf gan ei bod yn tynnu sylw at orchmynion wrth i chi eu teipio ond ar gyfer y dechreuwr absoliwt gallech dreulio'r ychydig wythnosau cyntaf yn dysgu VIM ac EMACS heb ysgrifennu un llinell o god.

Oddi o'r ddau, mae'n well gennyf EMACS ond i fod yn onest mae'n well gennyf ddefnyddio golygydd syml fel nano , gedit neu daflen ddalen.

Os ydych chi'n ysgrifennu sgriptiau ar eich cyfrifiadur eich hun a'ch bod yn gwybod y bydd gennych chi fynediad i amgylchedd graffigol bob amser, yna gallwch ddewis y golygydd sy'n gweithio orau i chi a gall fod naill ai'n graffigol megis GEdit neu olygydd sy'n rhedeg yn uniongyrchol yn y derfynell megis nano neu vim.

At ddibenion y canllaw hwn, byddaf yn defnyddio nano gan ei bod yn cael ei osod yn greadigol ar y mwyafrif o ddosbarthiadau Linux ac felly mae'n debygol y bydd gennych fynediad ato.

Agor Ffenestr Terfynell

Os ydych chi'n defnyddio dosbarthiad Linux gyda bwrdd gwaith graffigol fel Linux Mint neu Ubuntu, gallwch agor ffenestr derfynell trwy wasgu CTRL + ALT + T.

Ble I Rhoi'ch Sgriptiau

At ddibenion y tiwtorial hwn, gallwch roi eich sgriptiau mewn ffolder o dan eich ffolder cartref.

Mewn ffenestr derfynell gwnewch yn siŵr eich bod yn eich ffolder cartref trwy deipio'r gorchymyn canlynol:

cd ~

Mae'r gorchymyn cd yn sefyll ar gyfer cyfeiriadur newid ac mae'r tilde (~) yn llwybr byr ar gyfer eich ffolder cartref.

Gallwch wirio eich bod chi yn y man cywir trwy deipio'r gorchymyn canlynol:

pwd

Bydd y gorchymyn pwd yn dweud wrthych eich cyfeiriadur gwaith presennol (lle rydych chi yn y goeden cyfeirlyfr). Yn fy achos i, dychwelodd / home / gary.

Nawr, yn amlwg, ni fyddwch am roi eich sgriptiau yn syth i mewn i'r ffolder cartref felly creu ffolder o'r enw sgriptiau trwy deipio'r gorchymyn canlynol.

sgriptiau mkdir

Newid i'r ffolder sgriptiau newydd trwy deipio'r gorchymyn canlynol:

sgriptiau cd

Eich Sgript Cyntaf

Mae'n arferol wrth ddysgu sut i raglennu i wneud y rhaglen gyntaf yn allbwn y geiriau "Hello World".

O fewn eich ffolder sgriptiau nodwch y gorchymyn canlynol:

nano helloworld.sh

Nawr rhowch y cod canlynol i'r ffenestr nano.

#! / bin / bash echo "hello world"

Gwasgwch CTRL + O i achub y ffeil a CTRL + X i adael nano.

Mae'r sgript ei hun wedi'i ffurfio fel a ganlyn:

Mae angen cynnwys y #! / Bin / bash ar frig yr holl sgriptiau a ysgrifennwch gan ei fod yn gadael cyfieithwyr a bod y system weithredu'n gwybod sut i drin y ffeil. Yn y bôn, cofiwch ei roi i mewn ac yn anghofio pam rydych chi'n ei wneud.

Mae gan yr ail linell un gorchymyn o'r enw adleisio sy'n allbwn y testun sy'n ei ddilyn ar unwaith.

Sylwch, os ydych am arddangos mwy nag un gair, mae angen i chi ddefnyddio dyfynbrisiau dwbl (") o gwmpas y geiriau.

Gallwch nawr redeg y sgript trwy deipio'r gorchymyn canlynol:

sh helloworld.sh

Dylai'r geiriau "hello world" ymddangos.

Ffordd arall i redeg sgriptiau fel a ganlyn:

./helloworld.sh

Y siawns yw, os byddwch chi'n rhedeg y gorchymyn hwnnw yn eich terfynell ar unwaith, byddwch yn cael gwall caniatâd.

Er mwyn rhoi caniatâd i redeg y sgript fel hyn, teipiwch y canlynol:

sudo chmod + x helloworld.sh

Felly beth ddigwyddodd mewn gwirionedd yno? Pam y gallech chi redeg helloworld.sh sh heb newid caniatadau ond yn rhedeg ./shelloworld.sh achosi problem?

Mae'r dull cyntaf yn llwytho'r cyfieithydd bash sy'n cymryd y helloworld.sh fel mewnbwn ac yn gweithio allan beth i'w wneud ag ef. Mae gan y cyfieithydd bash eisoes ganiatâd i redeg a dim ond rhedeg y gorchmynion yn y sgript.

Mae'r ail ddull yn golygu bod y system weithredu'n cyfrifo beth i'w wneud gyda'r sgript ac felly mae angen rhywbeth i'w gyflawni er mwyn gweithredu.

Roedd y sgript uchod yn iawn ond beth sy'n digwydd os ydych chi am arddangos y dyfynodau?

Mae yna sawl ffordd o gyflawni hyn. Er enghraifft, gallwch chi roi gwrth-gefn cyn y dyfynodau fel a ganlyn:

adleisio \ "helo byd \"

Bydd hyn yn cynhyrchu'r allbwn "hello world".

Arhoswch funud er, beth os ydych chi eisiau arddangos \ "hello world \"?

Wel, gallwch chi ddianc o'r cymeriadau dianc hefyd

adleisio \\ "\" helo byd \\ "\"

Bydd hyn yn cynhyrchu'r allbwn \ "hello world \".

Nawr rwy'n gwybod beth rydych chi'n ei feddwl. Ond rwyf wir eisiau dangos \\ "\" hello world \\ "\"

Gall defnyddio adleisio gyda'r holl gymeriadau dianc hyn fod yn eithaf gwirion. Mae gorchymyn amgen y gallwch ei ddefnyddio o'r enw printf.

Er enghraifft:

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

Sylwch fod y testun yr ydym am ei arddangos rhwng dyfyniadau unigol. Mae'r gorchymyn printf yn allbynnau testun o'ch sgript. Mae'r% s yn golygu y bydd yn dangos llinyn, ac yn amlinellu llinell newydd.

Crynodeb

Nid ydym wedi cwmpasu llawer o dir yn rhannol ond gobeithio y bydd eich sgript gyntaf yn gweithio.

Yn y rhan nesaf, byddwn yn edrych ar wella ar sgript hello world i arddangos testun mewn gwahanol liwiau, derbyn a thrin paramedrau mewnbwn, newidynnau a rhoi sylwadau ar eich cod.