Beginners Guide To BASH - diel 1 - Hello World

Der binne in soad guides yn 'e ynternet dy't sjen litte hoe't Shell-skripts mei BASH begjinne en dit guod besiket in lyts oare spin te jaan omdat it skreaun is troch ien dy't in protte skelpfeartûnderfining hat.

No sille jo tinke dat dit in dúdlik idee is, mar ik fyn dat guon guides mei jo prate as as jo al in saakkundige binne en oare riedsleden nimme te lang om te besunigjen nei 'e jammer.

Wylst myn ûnderfining fan LINUX / UNIX-skelpskrift beheind is, bin ik in softwareûntwikkeler by hannel en ik bin in dabhân by scripting talen lykas PERL, PHP en VBScript.

It punt fan dizze guod is dat jo leare kinne as ik leare en alle ynformaasje dy't ik opnimme sil, sil ik nei jo passe.

Begjinne

Der is fansels in soad teory dat ik jo fuortendaliks trochjaan kin, lykas it beskriuwen fan de ferskate soarten skelpen en de foardielen fan BASH oer KSH en CSH te brûken.

De measte minsken as it learen fan wat nij wolle ynspringe en begjinne mei in pear praktyske lessen foar it earst en mei dat yn 't sin bin ik jo net mei trivia dy't jo no net wichtich binne.

Alles wat jo nedich hawwe foar folgjen fan dit guod is in tekstredakteur en in terminal dat útfiert BASH (de standertshell op de measte Linux-distribúsjes).

Text Editors

Oare guides dy't ik lêze hawwe suggereard dat jo in tekstredakteur nedich hawwe dy't kleurskodearring fan kommando's en de oanbeheande redakteuren binne VIM of EMACS .

Kleuren kodearing is moai as it befestiget kommando's as jo jo ynstelle, mar foar de absolute beginner kinne jo de earste pear wike learje VIM en EMACS sûnder in inkele line fan koade te skriuwen.

Ien fan 'e twa wol ik foarkomme EMACS, mar om earlik te wêzen, bin ik leaver om in ienfâldige bewurker te brûken lykas nano , gedit of leafpad.

As jo ​​skripts op jo eigen kompjûter skriuwe en jo witte dat jo altyd tagong hawwe ta in grafyske omjouwing, dan kinne jo de bewurkers kieze dy 't it bêste foar jo is en it kin grafysk wêze lykas GEdit of in editor dy't direkt yn it terminal bestiet lykas nano of vim.

Foar de doelstellingen fan dit guod sil ik brûk fan as it natuerlik ynstallearre is op 'e mearderheid fan Linux-distribúsjes en it is dêrtroch wierskynlik dat jo tagong ha.

Iepenje in terminalfinster

As jo ​​in Linux-distribúsje brûke mei grafike buroblêd lykas Linux Mint of Ubuntu kinne jo in terminalfinster iepenje troch te drukken op CTRL + ALT + T.

Wêr't jo jo skripten oanpasse

Foar de doelstellingen kinne jo jo skripts yn in map falle ûnder jo thúsblêd.

Binnen in terminalfinster soargje derfoar dat jo yn jo thúsblêd binne troch te typen it folgjende kommando:

cd ~

It cd-kommandaal stiet foar it feroarjen fan triemtafel en de tilde (~) is in fluchtoets foar jo thússide.

Jo kinne kontrolearje dat jo yn it krekte plak binne troch it folgjende kommando te typen:

pwd

It kommando pwd sil jo jo hjoeddeistige wurktafel fertelle (wêr't jo yn de triembeam binne). Yn myn gefal kaam it werom / hûs / gary.

No no, fansels, jo wolle jo skripts net direkt yn 'e thúsblêd sette, sadat in map oantsjutte mei skripts troch te typen it folgjende kommando.

mkdir scripts

Feroarje yn it nije skripts map troch te typen it folgjende kommando:

cd scripts

Jo Earste Skript

It is gewoanlik as jo learje hoe't jo programma meitsje om it earste programma krekt de wurden "Hello World" út te fieren.

Fanút binnen jo skripts folder kinne jo it folgjende kommando ynfiere:

nano helloworld.sh

Fier dan de folgjende koade yn it Nano-finster yn.

#! / bin / bash echo "hallo wrâld"

Druk CTRL + O om de triem te bewarjen en Ctrl + X om út te gean.

It skript sels is sa makke as:

De #! / Bin / bash moat oan 'e top fan al de skripts skriuwe, dy't jo skriuwe as it liedt ta interpreters en it bestjoeringssysteem te witten hoe't jo de triem behannelje. Basikatyf just betinken om it yn te setten en ferjitten oer wêrom't jo it dogge.

De twadde line hat in ien kommando neamd echo dy't de tekst útfiert dy't der fuort fuort folgje.

Tink derom dat as jo mear as ien wurd sjen wolle, moatte jo dûbele quotes (") om de wurden brûke.

Jo kinne it skript no troch it folgjende kommando ynfiere:

sh helloworld.sh

De wurden "hallo wrâld" moatte ferskine.

In oare manier om skripts út te fieren is sa:

./helloworld.sh

De kânsen binne dat as jo dizze kommando yn jo terminal rinne, dan krije jo in fergunningflater.

Om tagongsrjochten te jaan om it skript op dizze manier te meitsjen, typ de folgjende:

sudo chmod + x helloworld.sh

Soe wat der wier is? Wêrom koenen jo de hellink.sh net útfiere sûnder wizigingen te wizigjen, mar rinnende ./helloworld.sh feroarsake in probleem?

De earste metoade lans de bash-interpreter dy't de helloworld.sh nimt as input en wurket út wat mei te dwaan. De bash-ynterpreter hat al autorisaasjes om te runen en gewoan de kommando's yn it skript te rinnen.

De twadde metoade kin it bestjoeringssysteem útfiere wat jo dwaan mei it skript en dêrom freget it in útfierber bit om út te fieren.

It boppeste skript wie ok, mar wat bart as jo de quotaasjemarks werjaan wolle?

Der binne ferskate manieren om dit te berikken. Sa kinne jo bygelyks in efterblêd sette foar de petearen as folgjend:

echo \ "hello wrâld \"

Dit sil de útfiering "hello wrâld" produsearje.

Wachtsje in minút, wat as jo wolle "hello wrâld" sjen litte?

Sels kinne jo ek de eksimplaren útkomme

echo \\ "\" hallo wrâld \\ "\"

Dit sil de útfier \ "hello wrâld \" meitsje.

No wit ik wat jo tinke. Mar ik wol werklik sjen \\ "\" hello wrâld \\ "\"

Mei echo mei allinich dizze escape-karakters kinne jo graach dúdlik krije. Der is in alternatyf kommando dat jo brûk meitsje kinne mei printf.

Bygelyks:

printf '% s \ n' '\\ "\" hallo wrâld \\ "\"'

Tink derom dat de tekst dy't wy sjen wolle, is yn tusken single quotes. It kommando printf jout tekst út jo skript. De% s betsjut dat it in tekenrige werjaan sil de \ n in nije line út.

Gearfetting

Wy hawwe net echt folle grûn yn diel 1, mar hooplik dat jo jo earste skript wurkje.

Yn it folgjende part sjogge wy op it ferbetterjen fan it hello-wrâldskript om tekst te ferskinen yn ferskate kleuren, akseptearje en behannelje ynputparameters, fariabelen en kommentaar fan jo koade.