Bash este un interpret de linie de comandă sau Unix Shell și este utilizat pe scară largă în sistemul de operare GNU/Linux. Este scris de Brian Jhan Fox. Este folosit ca shell de conectare implicit pentru majoritatea distribuțiilor Linux. Scripting-ul este folosit pentru a automatiza execuția sarcinilor, astfel încât oamenii să nu fie nevoiți să le execute individual. Bash scripting este o modalitate excelentă de a automatiza diferite tipuri de sarcini într-un sistem. Dezvoltatorii pot evita să facă sarcini repetitive folosind scripting bash.
Scriptingul Bash acceptă variabile, instrucțiuni condiționale și bucle la fel ca limbajele de programare. Mai jos sunt câteva dintre aplicațiile Bash Scripts –
Cuprins
- Aplicații ale scripturilor Bash:
- Avantajele scripturilor Bash:
- Cum se scrie scripturi Bash?
- Nume de fișiere și permisiuni
- Variabile
- Intrare și ieșire
- Funcții
- Luarea deciziilor
- Comparații șiruri și numerice
Aplicații ale scripturilor Bash:
- Manipularea fișierelor
- Executarea sarcinilor de rutină, cum ar fi operația de backup
- Automatizare
Avantajele utilizării scripturilor Bash sunt prezentate mai jos –
Avantajele scripturilor Bash:
- Este simplu.
- Ajută la evitarea îndeplinirii sarcinilor repetitive
- Ușor de folosit
- Sarcinile efectuate frecvent pot fi automatizate
- O secvență de comenzi poate fi rulată ca o singură comandă.
Dezavantajele Scripturilor Bash sunt prezentate mai jos -
Dezavantajele scripturilor Bash:
- Orice greșeală în timpul scrierii poate fi costisitoare.
- Un nou proces a fost lansat pentru aproape fiecare comandă shell executată
- Viteză lentă de execuție
- Probleme de compatibilitate între diferite platforme
Cum se scrie scripturi Bash?
Pentru a scrie un Script Bash vom urma pașii –
- Mai întâi, vom crea un fișier cu extensia .sh.
- În continuare, vom nota scripturile bash din el
- După aceea, îi vom oferi permisiunea de execuție.
Pentru a crea și scrie un fișier cu extensia .sh putem folosi gedit editor de text. Comanda pentru aceasta va fi -
gedit scriptname.sh>
Prima linie a fișierului nostru script va fi -
#!/bin/bash>
Acest lucru va spune sistemului să folosească Bash pentru execuție. Apoi ne putem scrie propriile scenarii.
Să scriem doar un script simplu care va imprima câteva linii în terminal. Codul pentru acesta va fi -
#!/bin/bash echo 'Hello, techcodeview.com'>
Acum vom salva fișierul și îi vom oferi permisiunea de execuție. Pentru a face acest lucru, utilizați următoarea comandă -
chmod +x scriptname.sh>
În continuare, pentru a executa următorul script, vom folosi următoarea comandă -
./scriptname.sh>
Iată imaginea grafică a terminalului după executarea comenzilor de mai sus, după cum urmează:
Aici numele fișierului script este gfg.sh.
Acum putem scrie și comenzi mai complicate folosind Scripturi Bash. Iată un exemplu de mai jos în care folosim o declarație de condiție -
Exemplu de script:
int la șir de caractere java
#!/bin/bash Age=17 if [ '$Age' -ge 18 ]; then echo 'You can vote' else echo 'You cannot vote' fi>
Ieșire:
You cannot vote>
Iată reprezentarea grafică a terminalului după executarea scriptului de mai sus, după cum urmează:
În modul de mai sus, putem executa mai multe comenzi Bash simultan.
Acum să ne uităm la celelalte concepte importante legate de Bash Scripting.
Nume de fișiere și permisiuni
În exemplul de mai sus, am salvat fișierul folosind gfg.sh nume și, de asemenea, a furnizat permisiunea de execuție folosind chmod comanda. Acum, să înțelegem de ce am făcut asta.
În timp ce scriem scripturi bash, ar trebui să ne salvăm fișierul cu extensia .sh, astfel încât sistemul Linux să îl poată executa. Când creăm pentru prima dată un fișier cu extensia .sh, acesta nu are nicio permisiune de execuție și fără permisiunea de execuție scriptul nu va funcționa. Deci, ar trebui să-i oferim permisiunea de execuție folosind chmod comanda.
Numele de fișier al unui script bash poate fi orice, dar prin convenție, este recomandat să folosiți snake case ( my_bash_script.sh ) sau cratime ( my-bash-script.sh ) pentru denumirea unui fișier script.
Variabile
Putem folosi variabile în scripting bash. Mai jos este un exemplu de program pentru a înțelege utilizarea variabilelor în scripturile Bash.
Exemplu de script:
Name='SATYAJIT GHOSH' Age=20 echo 'The name is $Name and Age is $Age'>
Ieșirea variabilelor:
The name is SATYAJIT GHOSH and Age is 20>
Deci, aici sunt declarate două variabile Nume iar altul este Vârstă. Aceste variabile sunt accesibile folosind $Name și $Age. Asta înseamnă că putem declara o variabilă într-un script bash folosind VariableName=Valoare și îl puteți accesa folosind $VariableName. Iată reprezentarea grafică a terminalului după executarea scriptului de mai sus, după cum urmează:
Există două tipuri de variabile prezente în Bash Scripting. În mod convențional, dacă o variabilă, este declarată în interiorul unei funcții, atunci este în general a variabilă locală iar daca este declarat in afara atunci este a variabilă globală . În cazul unui script bash, acest concept este puțin diferit, aici orice variabilă, indiferent dacă este scrisă în interiorul unei funcții sau în afara unei funcții implicit, este o variabilă globală. Dacă vrem să facem o variabilă locală, atunci trebuie să folosim cuvântul cheie local.
Notă: Este cea mai bună practică să folosiți întotdeauna o variabilă locală în interiorul unei funcții pentru a evita orice confuzie inutilă.
Un exemplu de același lucru este dat mai jos -
Exemplu de script:
#!/bin/bash var1='Apple' #global variable myfun(){ local var2='Banana' #local variable var3='Cherry' #global variable echo 'The name of first fruit is $var1' echo 'The name of second fruit is $var2' } myfun #calling function echo 'The name of first fruit is $var1' #trying to access local variable echo 'The name of second fruit is $var2' echo 'The name of third fruit is $var3'> Ieșirea variabilelor locale și globale:
The name of first fruit is Apple The name of second fruit is Banana The name of first fruit is Apple The name of second fruit is The name of third fruit is Cherry>
Aici, în acest exemplu de mai sus, var2 este o variabilă locală, așa că atunci când o accesăm din funcție merge bine, dar când încercăm să o accesăm în afara funcției, ne dă un rezultat gol în ieșire.
Pe de altă parte, spre deosebire de limbajele de programare, chiar dacă var3 este definit în interiorul unei funcții, totuși acționează ca o variabilă globală și poate fi accesată în afara funcției. Mai jos este reprezentarea shell-ului terminalului după executarea scriptului -
Intrare și ieșire
Intrarea și ieșirea sunt concepte fundamentale pentru scripting shell. Un script poate lua una sau mai multe intrări și poate produce, de asemenea, zero sau mai multe ieșiri. Poate chiar produce unele erori. Să înțelegem asta cu un exemplu -
Exemplu de script:
echo 'Enter filename' read filename if [ -e $filename ] then echo '$filename is exits on the directory' cat $filename else cat>$filename echo 'Fișier creat' fi>
Ieșire de intrare și ieșire:
Prima data:
Enter filename geeks.txt Hello Geek File created>
A doua oară:
Enter filename geeks.txt geeks.txt is exits on the directory Hello Geek>
Deci, în acest exemplu de mai sus pentru prima dată, scriptul nu a putut găsi niciun fișier cu acel nume de fișier, iar blocul else este executat. A creat fișierul și a pus câteva date în acel fișier. Când îl rulăm a doua oară cu același nume de fișier, atunci găsește fișierul. Deci, blocul if este executat și care afișează conținutul fișierului. Citirea conținutului fișierului este introdusă și, pentru prima dată, introducerea datelor în fișier este considerată a fi rezultată. Aici am folosit > pentru stocarea conținutului într-un fișier. The > notația este folosită pentru a redirecționa stdout la un dosar. Pe de altă parte, putem folosi 2> notație pentru a redirecționa stderr și &> pentru a redirecționa atât stdout cât și stderr.
Mai jos este reprezentarea grafică a terminalului după executarea următorului script -
Funcții
În programare, O funcție este un bloc de cod care îndeplinește anumite sarcini și poate fi apelată de mai multe ori pentru realizarea sarcinilor. Cel mai simplu exemplu de utilizare a funcției în scriptingul Bash poate fi dat ca:
Exemplu de script:
#!/bin/bash #It is a function myFunction () { echo Hello World from techcodeview.com } #function call myFunction> Ieșire de funcții:
Hello World from techcodeview.com>
Exemplul de mai sus arată o funcție care imprimă ceva atunci când este apelată.
Deci, sintaxa de bază pentru scrierea funcțiilor într-un Script Bash va fi -
Sintaxa funcțiilor:
#for defining function_name(){ commands ..... } function_name # for calling> Pe lângă aceasta, putem avea și funcții cu argumente de trecere și cu valori returnate.
Luarea deciziilor
În programare, Luarea deciziilor este unul dintre conceptele importante. Programatorul oferă una sau mai multe condiții pentru execuția unui bloc de cod. Dacă condițiile sunt îndeplinite, atunci acel bloc de coduri este doar executat.
Două tipuri de declarații de luare a deciziilor sunt utilizate în cadrul scripturilor shell. Sunt -
1. Declarație dacă-altfel:
If else declarația este o declarație condiționată. Poate fi folosit pentru a executa două coduri diferite, în funcție de faptul dacă condiția dată este îndeplinită sau nu.
Există câteva soiuri prezente în declarația if-else. Sunt -
- dacă-fi
- dacă-altfel-fi
- dacă-elif-altfel-fi
- imbricat dacă-altfel
Sintaxa pentru cea mai simplă va fi -
Sintaxa instrucțiunii If-else:
if [ expression ]; then statements fi>
Exemplu de script:
Name='Satyajit' if [ '$Name' = 'Satyajit' ]; then echo 'His name is Satyajit. It is true.' fi>
Ieșirea declarației if-else:
His name is Satyajit. It is true.>
În exemplul de mai sus, în timpul verificării condiției, numele se potrivește și condiția devine adevărată. Prin urmare, blocul de cod prezent în blocul if este executat. În cazul în care numele nu se potrivește, atunci nu va avea o ieșire. Mai jos este reprezentarea grafică a terminalului după executarea următorului script -
2. declarație de caz:
case-sac funcționează practic la fel ca declarația switch în programare. Uneori, dacă trebuie să verificăm mai multe condiții, atunci se poate complica utilizarea instrucțiunilor if. În acele momente putem folosi o declarație case-sac. Sintaxa va fi -
Sintaxa instrucțiunii case-sac:
case $var in Pattern 1) Statement 1;; Pattern n) Statement n;; esac>
Exemplu de script:
Name='Satyajit' case '$Name' in #case 1 'Rajib') echo 'Profession : Software Engineer' ;; #case 2 'Vikas') echo 'Profession : Web Developer' ;; #case 3 'Satyajit') echo 'Profession : Technical Content Writer' ;; esac>
Ieșirea declarației case-sac:
Profession : Technical Content Writer>
În exemplul de mai sus, instrucțiunea case-sac a executat instrucțiunea care face parte din modelul potrivit aici „Nume”. Mai jos este reprezentarea grafică a terminalului după executarea următorului script -
Comparații șiruri și numerice
Compararea șirurilor înseamnă că în scriptul shell putem lua decizii făcând comparații și în cadrul șirurilor. Iată un tabel descriptiv cu toți operatorii -
| Operator | Descriere |
|---|---|
| == | Returnează adevărat dacă șirurile sunt egale |
| != | Returnează adevărat dacă șirurile nu sunt egale |
| -n | Returnează adevărat dacă șirul de testat nu este nul |
| -Cu | Returnează adevărat dacă șirul de testat este nul |
Operatorii aritmetici sunt utilizați pentru verificarea condițiilor bazate pe aritmetice. Ca mai puțin decât, mai mare decât, egal cu etc. Iată un tabel descriptiv cu toți operatorii -
| Operator | Descriere |
|---|---|
| -echivalentul | Egal |
| -GE | Mai mare decât sau egal |
| -gt | Mai mare ca |
| - cel | Mai puțin sau egal |
| -lt | Mai puțin decât |
| - este | Nu este egal |
Mai jos este un exemplu simplu de același lucru -
Exemplu de script:
if [ 10 -eq 10 ];then echo 'Equal' fi if [ 'Geeks' == 'Geeks' ]; then echo 'same' #output else echo 'not same' fi>
Ieșire de șiruri și comparații numerice:
Equal same>
În acest exemplu, primul (-eq ) este o comparație numerică care verifică egalitatea. Al doilea ( == ) este, de asemenea, verificat pentru egalitate, dar în șiruri. Mai jos este reprezentarea grafică a terminalului după executarea următorului script -

Vom afla mai multe despre acest concept în articolele următoare.
Concluzie
În acest articol discutăm despre scripturile Bash, care joacă un rol vital în automatizarea sarcinilor în mediul Linux. Ca interpret de linie de comandă, Bash oferă simplitate și ușurință de utilizare pentru dezvoltatori pentru a crea scripturi care simplifică operațiunile de rutină, manipulează fișiere și execută sarcini complexe. În timp ce scripturile Bash pot spori productivitatea evitând acțiunile repetitive și executând secvențe de comenzi în mod eficient, ele vin cu considerații precum gestionarea permisiunilor, manipularea variabilelor și implementarea structurilor de luare a deciziilor. Prin stăpânirea scripturilor Bash, utilizatorii își pot valorifica puterea pentru a-și optimiza fluxul de lucru și a îmbunătăți sarcinile de administrare a sistemului pe platformele Linux.