Ghid de incepatori pentru BASH - Partea 1 - Buna ziua

Există o mulțime de ghiduri pe internet care arată cum să creați scripturi Shell folosind BASH și acest ghid își propune să ofere o rotire ușor diferită deoarece este scrisă de cineva care are foarte puțină experiență de scripting shell.

Acum ați putea crede că aceasta este o idee prostească, dar am descoperit că niște ghiduri vă vorbesc ca și cum ați fi deja un expert și că alți ghizii iau prea mult timp pentru a tăia la urmărire.

În timp ce experiența mea de scripting pentru shell-ul LINUX / UNIX este limitată, eu sunt un dezvoltator de software prin comerț și sunt o mână dab la limbi de scripting, cum ar fi PERL, PHP și VBScript.

Scopul acestui ghid este că veți învăța cum învăț și orice informație pe care o voi ridica pe care o voi transmite.

Noțiuni de bază

Există, evident, o mulțime de teorii pe care aș putea să le transmit imediat, cum ar fi descrierea diferitelor tipuri de coajă și avantajele utilizării BASH asupra KSH și CSH.

Majoritatea oamenilor, atunci când învață ceva nou, doresc să sară și să înceapă mai întâi câteva lecții practice și având în vedere că nu te voi plictisi cu niște trivia care nu sunt importante chiar acum.

Tot ce aveți nevoie pentru a urma acest ghid este un editor de text și un terminal care rulează BASH (cochilie implicită pe majoritatea distribuțiilor Linux).

Editoare de texte

Alte ghiduri pe care le-am citit au sugerat că aveți nevoie de un editor de text care include codarea culorilor de comenzi și editorii recomandați sunt fie VIM, fie EMACS .

Codarea culorilor este plăcută deoarece subliniază comenzi pe măsură ce le tastați, dar pentru începătorul absolut ați putea petrece primele câteva săptămâni învățând VIM și EMACS fără a scrie o singură linie de cod.

Din cele două prefer EMACS, dar pentru a fi sincer prefer să folosesc un editor simplu, cum ar fi nano , gedit sau leafpad.

Dacă scriem scripturi pe calculatorul propriu și știți că veți avea întotdeauna acces la un mediu grafic, puteți alege editorul care funcționează cel mai bine pentru dvs. și poate fi grafic, cum ar fi GEdit sau un editor care rulează direct în terminal cum ar fi nano sau vim.

În scopul acestui ghid, voi folosi nano deoarece este instalat nativ pe majoritatea distribuțiilor Linux și este, prin urmare, probabil că veți avea acces la acesta.

Deschiderea unui fereastră de terminal

Dacă utilizați o distribuție Linux cu desktop grafic, cum ar fi Linux Mint sau Ubuntu, puteți deschide o fereastră de terminal apăsând CTRL + ALT + T.

Unde să puneți scripturile dvs.

În scopul acestui tutorial puteți pune script-urile într-un dosar sub dosarul dvs. de domiciliu.

În cadrul unei ferestre terminale, asigurați-vă că vă aflați în dosarul dvs. de domiciliu tastând următoarea comandă:

cd ~

Comanda cd reprezintă directorul de schimbare și tilda (~) este o comandă rapidă pentru dosarul dvs. de domiciliu.

Puteți verifica dacă sunteți în locul corect introducând următoarea comandă:

PWD

Comanda pwd vă va spune directorul de lucru actual (unde vă aflați în arborele de directoare). În cazul meu, sa întors / home / gary.

Acum, evident, nu veți dori să puneți scripturile dvs. direct în folderul de domiciliu, astfel încât să creați un folder numit scripturi introducând următoarea comandă.

script-uri mkdir

Schimbați în noul folder de scripturi tastând următoarea comandă:

cd script-uri

Primul tău script

Este obișnuit atunci când învățați cum să programați pentru a face primul program pur și simplu extrage cuvintele "Hello World".

Din dosarul de script-uri introduceți următoarea comandă:

nano helloworld.sh

Acum introduceți următorul cod în fereastra nano.

#! / bin / bash ecou "salut lume"

Apăsați CTRL + O pentru a salva fișierul și CTRL + X pentru a ieși din nano.

Scriptul în sine este alcătuit după cum urmează:

#! / Bin / bash trebuie să fie inclus în partea de sus a tuturor scripturilor pe care le scrieți, deoarece le permite interpreților și sistemului de operare să știe cum să se ocupe de fișier. Practic, amintiți-vă doar să o puneți și să uitați de ce faceți acest lucru.

A doua linie are o singură comandă numită ecou care scoate textul imediat următor.

Rețineți că dacă doriți să afișați mai mult de un cuvânt, trebuie să utilizați ghilimele duble (") în jurul cuvintelor.

Acum puteți rula scriptul tastând următoarea comandă:

sh helloworld.sh

Trebuie să apară cuvântul "salut lume".

Un alt mod de a rula scripturile este după cum urmează:

./helloworld.sh

Șansele sunt că, dacă executați imediat comanda în terminalul dvs., veți primi o eroare de permisiune.

Pentru a acorda permisiuni pentru a rula scriptul în acest fel, tastați următoarele:

sudo chmod + x helloworld.sh

Deci, ce sa întâmplat de fapt acolo? De ce ați reușit să rulați sh helloworld.sh fără a schimba permisiunile, dar rulați ./helloworld.sh cauzat o problemă?

Prima metodă încarcă interpretul de bash care ia ascultarea helloworld.sh și lucrează cu ce să facă. Interpretul bash are deja permisiuni de rulare și trebuie doar să execute comenzile din script.

Cea de-a doua metodă permite sistemului de operare să stabilească ce trebuie să facă cu scriptul și, prin urmare, necesită un bit executabil pentru executarea acestuia.

Scriptul de mai sus a fost ok, dar ce se întâmplă dacă doriți să afișați ghilimele?

Există diferite moduri de a realiza acest lucru. De exemplu, puteți să introduceți un ghirlandă înainte de ghilimele, după cum urmează:

ecou \ "salut lume \"

Aceasta va produce rezultatul "salut lume".

Așteptați un minut deși, dar dacă doriți să afișați "salut lume"?

Ei bine, puteți scăpa și de personajele de evacuare

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

Acest lucru va produce ieșirea \ "salut lume \".

Acum știu la ce te gândești. Dar chiar vreau să afișez \\ "\" hello world \\ "\"

Utilizarea ecoului cu toate aceste caractere de evadare poate deveni destul de prostie. Există o comandă alternativă pe care o puteți folosi numit printf.

De exemplu:

printf '% s \ n "" \\ "\" salut lume \\ "\"'

Rețineți că textul pe care dorim să îl afișăm se află între ghilimele simple. Comanda printf emite text din scriptul dvs. % S înseamnă că va afișa un șir, \ n iese o nouă linie.

rezumat

Nu am acoperit prea mult teren în prima parte, dar sperăm că aveți primul script care funcționează.

În următoarea parte, vom analiza îmbunătățirea scriptului de salut pentru a afișa text în diferite culori, accepta și gestiona parametrii de intrare, variabilele și codarea codului.