Bash Scripting – Introduktion til Bash og Bash Scripting

Bash Scripting – Introduktion til Bash og Bash Scripting

Bash er en kommandolinjefortolker eller Unix Shell, og den er meget udbredt i GNU/Linux-operativsystemet. Det er skrevet af Brian Jhan Fox. Det bruges som standard login-shell til de fleste Linux-distributioner. Scripting bruges til at automatisere udførelsen af ​​opgaverne, så mennesker ikke behøver at udføre dem individuelt. Bash scripting er en fantastisk måde at automatisere forskellige typer opgaver i et system. Udviklere kan undgå at udføre gentagne opgaver ved hjælp af bash-scripting.

Bash-scripting understøtter variabler, betingede sætninger og loops ligesom programmeringssprog. Nedenfor er nogle af anvendelserne af Bash Scripts –

Indholdsfortegnelse

Anvendelser af Bash Scripts:

  • Manipulering af filer
  • Udførelse af rutineopgaver som sikkerhedskopiering
  • Automatisering

Fordelene ved at bruge Bash Scripts er angivet nedenfor -

Fordele ved Bash Scripts:

  • Det er enkelt.
  • Det hjælper med at undgå at udføre gentagne opgaver
  • Let at bruge
  • Ofte udførte opgaver kan automatiseres
  • En sekvens af kommandoer kan køres som en enkelt kommando.

Ulemperne ved Bash Scripts er angivet nedenfor -

Ulemper ved Bash Scripts:

  • Enhver fejl under skrivning kan være dyrt.
  • En ny proces lanceret for næsten hver shell-kommando, der udføres
  • Langsom udførelseshastighed
  • Kompatibilitetsproblemer mellem forskellige platforme

Hvordan skriver man Bash-scripts?

For at skrive et Bash Script følger vi trinene –

  • Først vil vi oprette en fil med filtypenavnet .sh.
  • Dernæst vil vi nedskrive bash-scripts i den
  • Derefter giver vi udførelsestilladelse til det.

For at oprette og skrive en fil med filtypen .sh kan vi bruge gedit tekst editor. Kommandoen for det vil være -

gedit scriptname.sh 

Den første linje i vores script-fil vil være -

#!/bin/bash 

Dette vil fortælle, at systemet skal bruge Bash til udførelse. Så kan vi skrive vores egne manuskripter.

Lad os bare skrive et simpelt script ned, der vil udskrive nogle linjer i terminalen. Koden til det vil være -

#!/bin/bash echo 'Hello, techcodeview.com' 

Nu vil vi gemme filen og give tilladelse til at udføre den. For at gøre det skal du bruge følgende kommando -

chmod +x scriptname.sh 

Næste for at udføre følgende script vil vi bruge følgende kommando -

./scriptname.sh 

Her er den terminale shell-billedafbildning efter at have udført ovenstående kommandoer som følger:

Her er scriptfilnavnet gfg.sh.

Nu kan vi også skrive mere komplicerede kommandoer ved hjælp af Bash Scripts. Her er et eksempel nedenfor, hvor vi bruger en betingelsessætning -

Eksempel script:

#!/bin/bash Age=17 if [ '$Age' -ge 18 ]; then echo 'You can vote' else echo 'You cannot vote' fi 

Produktion:

You cannot vote 

Her er den terminale shell-billedafbildning efter at have udført ovenstående script som følger:

På ovenstående måde kan vi udføre flere Bash-kommandoer på én gang.

Lad os nu se på de andre vigtige begreber relateret til Bash Scripting.

Filnavne og tilladelser

I ovenstående eksempel har vi gemt filen vha gfg.sh navn og også givet udførelsestilladelse vha chmod kommando. Lad os nu forstå, hvorfor vi har gjort det.

Mens vi skriver bash-scripts, bør vi gemme vores fil med filtypen .sh, så Linux-systemet kan udføre den. Når vi først opretter en fil med filtypenavnet .sh, har den ikke nogen udførelsestilladelse, og uden udførelsestilladelsen vil scriptet ikke fungere. Så vi bør give eksekveringstilladelse til det ved hjælp af chmod kommando.

Filnavnet på et bash-script kan være alt andet end efter konvention, det anbefales at bruge slange-case (my_bash_script.sh) eller bindestreger (my-bash-script.sh) til at navngive en script-fil.

Variabler

Vi kan bruge variabler i bash-scripting. Nedenfor er et eksempelprogram til at forstå brugen af ​​variabler i Bash-scripts.

Eksempel script:

Name='SATYAJIT GHOSH' Age=20 echo 'The name is $Name and Age is $Age' 

Output af variable:

The name is SATYAJIT GHOSH and Age is 20 

Så her er har erklæret to variabler Navn og en anden er Alder. Disse variabler er tilgængelige ved hjælp af $Name og $Age. Det betyder, at vi kan erklære en variabel i et bash-script ved hjælp af VariableName=Værdi og kan få adgang til det vha $VariableName. Her er den terminale shell-billedafbildning efter at have udført ovenstående script som følger:

Der er to typer variabler til stede i Bash Scripting. Konventionelt, hvis en variabel er erklæret inde i en funktion, er den generelt en lokal variabel og hvis det er deklareret udenfor, så er det en global variabel . I tilfælde af et bash-script er dette koncept en lille smule anderledes, her er enhver variabel, hvad enten den er skrevet inde i en funktion eller uden for en funktion, som standard en global variabel. Hvis vi vil lave en lokal variabel, skal vi bruge søgeordet lokal.

Bemærk: Det er bedste praksis altid at bruge en lokal variabel inde i en funktion for at undgå unødvendig forvirring.

Et eksempel på det samme er givet nedenfor -

Eksempel 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' 

Output af lokale og globale variabler:

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 

Her i ovenstående eksempel er var2 en lokal variabel, så når vi får adgang til den fra funktionen, fungerer den fint, men når vi forsøger at få adgang til den uden for funktionen, giver den os et tomt resultat i outputtet.

På den anden side, i modsætning til programmeringssprog, selvom var3 er defineret i en funktion, fungerer den stadig som en global variabel, og den kan tilgås uden for funktionen. Nedenfor er terminal shell-afbildningen efter udførelse af scriptet –

Input og Output

Input og output er grundlæggende begreber for shell-scripting. Et script kan tage et eller flere input og kan også producere nul eller mange output. Det kan endda give nogle fejl. Lad os forstå dette med et eksempel -

Eksempel script:

echo 'Enter filename' read filename if [ -e $filename ] then echo '$filename is exits on the directory' cat $filename else cat>$filnavn echo 'Fil oprettet' fi 

Output af input og output:

Første gang:

Enter filename geeks.txt Hello Geek File created 

Anden gang:

Enter filename geeks.txt geeks.txt is exits on the directory Hello Geek 

Så i dette eksempel ovenfor, første gang, kunne scriptet ikke finde nogen fil med det filnavn, og den anden blok bliver udført. Det oprettede filen og lagde nogle data ind i den fil. Når vi kører den anden gang med det samme filnavn, så finder den filen. Så er if-blokken eksekveret, og det viser indholdet af filen. Læsning af filens indhold indlæses, og første gang lægges data ind i filen, anses det for at være output. Her har vi brugt > til lagring af indholdet i en fil. Det > notation bruges til at omdirigere stdout til en fil. På den anden side kan vi bruge 2> notation for at omdirigere stderr, og &> at omdirigere både stdout og stderr.

Nedenfor er den terminale shell-billedafbildning efter at have udført følgende script -

Funktioner

I programmering er en funktion en kodeblok, der udfører nogle opgaver, og den kan kaldes flere gange for at udføre opgaver. Det enkleste eksempel på brug af funktion i Bash scripting kan gives som –

Eksempel script:

#!/bin/bash #It is a function myFunction () { echo Hello World from techcodeview.com } #function call myFunction 

Output af funktioner:

Hello World from techcodeview.com 

Ovenstående eksempel viser en funktion, der udskriver noget, når det kaldes.

Så den grundlæggende syntaks for at skrive funktioner i et Bash Script vil være -

Syntaks af funktioner:

#for defining function_name(){ commands ..... } function_name # for calling 

Udover dette kan vi også have funktioner med beståede argumenter og med returværdier.

Beslutningstagning

I programmering er beslutningstagning et af de vigtige begreber. Programmøren giver en eller flere betingelser for udførelse af en kodeblok. Hvis betingelserne er opfyldt, bliver disse blok af koder kun eksekveret.

Der bruges to typer beslutningserklæringer inden for shell-scripting. De er -

1. Hvis-else-erklæring:

Hvis andet erklæring er en betinget erklæring. Den kan bruges til at udføre to forskellige koder baseret på om den givne betingelse er opfyldt eller ej.

Der er et par varianter til stede i if-else-erklæringen. De er -

  • hvis-fi
  • if-else-fi
  • hvis-elif-else-fi
  • indlejret if-else

Syntaksen for den enkleste vil være -

Syntaks for If-else-sætning:

if [ expression ]; then statements fi 

Eksempel script:

Name='Satyajit' if [ '$Name' = 'Satyajit' ]; then echo 'His name is Satyajit. It is true.' fi 

Output af if-else-sætning:

His name is Satyajit. It is true. 

I ovenstående eksempel matcher navnet under tilstandskontrollen, og betingelsen bliver sand. Derfor bliver den kodeblok, der er til stede i if-blokken, eksekveret. Hvis navnet ikke matcher, vil det ikke have et output. Nedenfor er den terminale shell-billedafbildning efter at have udført følgende script -

2. case-sac erklæring:

case-sac fungerer grundlæggende på samme måde som switch-sætning i programmering. Nogle gange, hvis vi skal kontrollere flere betingelser, kan det blive kompliceret at bruge if-sætninger. På de tidspunkter kan vi bruge en sag-sac-erklæring. Syntaksen vil være -

Syntaks for case-sac-sætning:

case $var in Pattern 1) Statement 1;; Pattern n) Statement n;; esac 

Eksempel 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 

Output af case-sac-erklæring:

Profession : Technical Content Writer 

I ovenstående eksempel udførte case-sac-sætningen sætningen, som er en del af det matchede mønster her 'Navn'. Nedenfor er den terminale shell-billedafbildning efter at have udført følgende script -

Streng og numeriske sammenligninger

Strengsammenligningen betyder i shell-scriptingen, at vi også kan tage beslutninger ved at lave sammenligninger inden for strenge. Her er en beskrivende tabel med alle operatørerne –

Operatør Beskrivelse
== Returnerer sand, hvis strengene er ens
!= Returnerer sand, hvis strengene ikke er ens
-n Returnerer sand, hvis strengen, der skal testes, ikke er null
-Med Returnerer sand, hvis strengen, der skal testes, er null

Aritmetiske operatorer bruges til at kontrollere de aritmetiske-baserede betingelser. Gerne mindre end, større end, lig med osv. Her er en beskrivende tabel med alle operatorerne –

Operatør Beskrivelse
-ækv Lige
-ge Større end eller lige
-gt Bedre end
-det Mindre end eller lige
-lt Mindre end
- er Ikke Lige

Nedenfor er et simpelt eksempel på det samme –

Eksempel script:

if [ 10 -eq 10 ];then echo 'Equal' fi if [ 'Geeks' == 'Geeks' ]; then echo 'same' #output else echo 'not same' fi 

Output af strenge og numeriske sammenligninger:

Equal same 

I dette eksempel er den første (-eq ) en numerisk sammenligning, der kontrollerer for lighed. Den anden ( == ) er også check for lighed, men i strenge. Nedenfor er den terminale shell-billedafbildning efter at have udført følgende script -

Vi vil lære mere om dette koncept i de næste artikler.

Konklusion

I denne artikel diskuterer vi Bash-scripting, som spiller en afgørende rolle i automatisering af opgaver i Linux-miljøet. Som kommandolinjefortolker tilbyder Bash enkelhed og brugervenlighed for udviklere til at skabe scripts, der strømliner rutineoperationer, manipulerer filer og udfører komplekse opgaver. Mens Bash-scripts kan øge produktiviteten ved at undgå gentagne handlinger og udføre sekvenser af kommandoer effektivt, kommer de også med overvejelser såsom administration af tilladelser, håndtering af variabler og implementering af beslutningsstrukturer. Ved at mestre Bash-scripting kan brugere udnytte dens kraft til at optimere deres arbejdsgang og forbedre systemadministrationsopgaver på Linux-platforme.