Bash Scripting – Introduksjon til Bash og Bash Scripting
Bash er en kommandolinjetolk eller Unix Shell, og den er mye brukt i GNU/Linux-operativsystemet. Den er skrevet av Brian Jhan Fox. Det brukes som standard påloggingsskall for de fleste Linux-distribusjoner. Skripting brukes til å automatisere utførelsen av oppgavene slik at mennesker ikke trenger å utføre dem individuelt. Bash-skripting er en fin måte å automatisere ulike typer oppgaver i et system. Utviklere kan unngå å gjøre repeterende oppgaver ved å bruke bash-skripting.
Bash-skripting støtter variabler, betingede utsagn og løkker akkurat som programmeringsspråk. Nedenfor er noen av applikasjonene til Bash Scripts –
Innholdsfortegnelse
- Anvendelser av Bash-skript:
- Fordeler med Bash-skript:
- Hvordan skrive Bash-skript?
- Filnavn og tillatelser
- Variabler
- Inngang og utgang
- Funksjoner
- Beslutningstaking
- Strenger og numeriske sammenligninger
Anvendelser av Bash-skript:
- Manipulere filer
- Utføre rutineoppgaver som sikkerhetskopiering
- Automasjon
Fordelene ved å bruke Bash-skript er gitt nedenfor -
Fordeler med Bash-skript:
- Det er enkelt.
- Det hjelper å unngå å gjøre repeterende oppgaver
- Lett å bruke
- Ofte utførte oppgaver kan automatiseres
- En sekvens av kommandoer kan kjøres som en enkelt kommando.
Ulempene med Bash-skriptene er gitt nedenfor -
Ulemper med Bash-skript:
- Enhver feil under skriving kan være kostbar.
- En ny prosess lansert for nesten hver skallkommando som utføres
- Langsom utførelseshastighet
- Kompatibilitetsproblemer mellom ulike plattformer
Hvordan skrive Bash-skript?
For å skrive et Bash-skript følger vi trinnene –
- Først vil vi lage en fil med filtypen .sh.
- Deretter vil vi skrive ned bash-skriptene i den
- Etter det vil vi gi utførelsestillatelse til det.
For å lage og skrive en fil med filtypen .sh kan vi bruke gedit tekstredigerer. Kommandoen for det vil være -
gedit scriptname.sh
Den første linjen i skriptfilen vår vil være -
#!/bin/bash
Dette vil fortelle systemet til å bruke Bash for utførelse. Da kan vi skrive våre egne manus.
La oss bare skrive ned et enkelt skript som vil skrive ut noen linjer i terminalen. Koden for det vil være -
#!/bin/bash echo 'Hello, techcodeview.com'
Nå vil vi lagre filen og gi utføringstillatelsen til den. For å gjøre det, bruk følgende kommando -
chmod +x scriptname.sh
Ved siden av å utføre følgende skript bruker vi følgende kommando -
./scriptname.sh
Her er terminalskallbildet etter å ha utført kommandoene ovenfor som følger:
Her er skriptfilnavnet gfg.sh.
Nå kan vi også skrive mer kompliserte kommandoer ved å bruke Bash Scripts. Her er et eksempel nedenfor der vi bruker en tilstandserklæring -
Eksempel på skript:
#!/bin/bash Age=17 if [ '$Age' -ge 18 ]; then echo 'You can vote' else echo 'You cannot vote' fi
Produksjon:
You cannot vote
Her er terminalskallbildet etter å ha utført skriptet ovenfor som følger:
På den ovennevnte måten kan vi utføre flere Bash-kommandoer samtidig.
La oss nå se på de andre viktige konseptene knyttet til Bash Scripting.
Filnavn og tillatelser
I eksemplet ovenfor har vi lagret filen ved hjelp av gfg.sh navn og også gitt utføringstillatelse ved å bruke chmod kommando. La oss nå forstå hvorfor vi har gjort det.
Mens vi skriver bash-skript bør vi lagre filen vår med filtypen .sh, slik at Linux-systemet kan kjøre den. Når vi først oppretter en fil med filtypen .sh, har den ingen utføringstillatelse og uten utføringstillatelsen vil ikke skriptet fungere. Så vi bør gi utføringstillatelse til det ved å bruke chmod kommando.
Filnavnet til et bash-skript kan være alt annet enn ved konvensjon, det anbefales å bruke slange-case (my_bash_script.sh) eller bindestreker (my-bash-script.sh) for å navngi en skriptfil.
Variabler
Vi kan bruke variabler i bash-skripting. Nedenfor er et eksempelprogram for å forstå bruken av variabler i Bash-skript.
Eksempel på skript:
Name='SATYAJIT GHOSH' Age=20 echo 'The name is $Name and Age is $Age'
Utdata av variabler:
The name is SATYAJIT GHOSH and Age is 20
Så her er har erklært to variabler Navn og en annen er Alder. Disse variablene er tilgjengelige ved å bruke $Name og $Age. Det betyr at vi kan erklære en variabel i et bash-skript ved å bruke VariableName=Verdi og kan få tilgang til den ved hjelp av $VariableName. Her er terminalskallbildet etter å ha utført skriptet ovenfor som følger:
Det finnes to typer variabler i Bash Scripting. Konvensjonelt, hvis en variabel er deklarert i en funksjon, er den vanligvis en lokal variabel og hvis det er deklarert utenfor så er det en global variabel . Når det gjelder et bash-skript, er dette konseptet litt annerledes, her er enhver variabel enten den er skrevet inne i en funksjon eller utenfor en funksjon som standard en global variabel. Hvis vi vil lage en lokal variabel, må vi bruke søkeordet lokal.
Merk: Det er best praksis å alltid bruke en lokal variabel i en funksjon for å unngå unødvendig forvirring.
Et eksempel på det samme er gitt nedenfor -
Eksempel på skript:
#!/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' Utdata av 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 dette eksemplet ovenfor er var2 en lokal variabel, så når vi får tilgang til den fra funksjonen går den bra, men når vi prøver å få tilgang til den utenfor funksjonen, gir den oss et tomt resultat i utdataene.
På den annen side, i motsetning til programmeringsspråk, selv om var3 er definert i en funksjon, fungerer den fortsatt som en global variabel, og den kan nås utenfor funksjonen. Nedenfor er terminalskall-avbildningen etter utførelse av skriptet -
Inngang og utgang
Input & output er grunnleggende konsepter for shell scripting. Et skript kan ta en eller flere innganger og kan også produsere null eller mange utganger. Det kan til og med gi noen feil. La oss forstå dette med et eksempel -
Eksempel på skript:
echo 'Enter filename' read filename if [ -e $filename ] then echo '$filename is exits on the directory' cat $filename else cat>$filnavn echo 'Fil opprettet' fi
Utgang av inngang og utgang:
Første gang:
Enter filename geeks.txt Hello Geek File created
Andre gang:
Enter filename geeks.txt geeks.txt is exits on the directory Hello Geek
Så i dette eksempelet ovenfor, første gang, kunne ikke skriptet finne noen fil med det filnavnet, og den andre blokken blir utført. Den opprettet filen og la noen data inn i den filen. Når vi kjører den en gang til med samme filnavn, finner den filen. Så, er hvis blokken blir utført og som viser innholdet i filen. Lesing av filinnholdet legges inn og første gang regnes data inn i filen som utdata. Her har vi brukt > for å lagre innholdet i en fil. De > notasjon brukes til å omdirigere stdout til en fil. På den annen side kan vi bruke 2> notasjon for å omdirigere stderr, og &> for å omdirigere både stdout og stderr.
Nedenfor er terminalskallbildet etter å ha utført følgende skript -
Funksjoner
I programmering er en funksjon en kodeblokk som utfører noen oppgaver, og den kan kalles flere ganger for å utføre oppgaver. Det enkleste eksemplet på bruk av funksjon i Bash-skripting kan gis som –
Eksempel på skript:
#!/bin/bash #It is a function myFunction () { echo Hello World from techcodeview.com } #function call myFunction Utgang av funksjoner:
Hello World from techcodeview.com
Eksempelet ovenfor viser en funksjon som skriver ut noe når det kalles.
Så den grunnleggende syntaksen for å skrive funksjoner i et Bash-skript vil være -
Syntaks av funksjoner:
#for defining function_name(){ commands ..... } function_name # for calling I tillegg til dette kan vi også ha funksjoner med beståtte argumenter og med returverdier.
Beslutningstaking
I programmering er beslutningstaking et av de viktige konseptene. Programmereren gir en eller flere betingelser for utførelse av en kodeblokk. Hvis betingelsene er oppfylt, blir bare blokken med koder utført.
To typer beslutningsuttalelser brukes innen shell scripting. De er -
1. If-else-uttalelse:
If else-setningen er en betinget erklæring. Den kan brukes til å utføre to forskjellige koder basert på om den gitte betingelsen er oppfylt eller ikke.
Det finnes et par varianter i if-else-erklæringen. De er -
- hvis-fi
- if-else-fi
- if-elif-else-fi
- nestet if-else
Syntaksen for den enkleste vil være -
Syntaks for If-else-setningen:
if [ expression ]; then statements fi
Eksempel på skript:
Name='Satyajit' if [ '$Name' = 'Satyajit' ]; then echo 'His name is Satyajit. It is true.' fi
Utdata av if-else-setning:
His name is Satyajit. It is true.
I eksemplet ovenfor, under betingelseskontrollen, samsvarer navnet, og betingelsen blir sann. Derfor blir kodeblokken som er tilstede i if-blokken, utført. Hvis navnet ikke stemmer, vil det ikke ha en utgang. Nedenfor er terminalskallbildet etter å ha utført følgende skript -
2. saksuttalelse:
case-sac fungerer i utgangspunktet det samme som switch-setning i programmering. Noen ganger hvis vi må sjekke flere forhold, kan det bli komplisert å bruke if-setninger. I de øyeblikkene kan vi bruke en saksuttalelse. Syntaksen vil være -
Syntaks for case-sac-setning:
case $var in Pattern 1) Statement 1;; Pattern n) Statement n;; esac
Eksempel på skript:
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
Utdata fra saksuttalelse:
Profession : Technical Content Writer
I eksemplet ovenfor utførte case-sac-setningen setningen som er en del av det matchede mønsteret her 'Navn'. Nedenfor er terminalskallbildet etter å ha utført følgende skript -
Strenger og numeriske sammenligninger
Strengesammenligningen betyr at vi i shell-skriptingen kan ta avgjørelser ved å gjøre sammenligninger innenfor strenger også. Her er en beskrivende tabell med alle operatørene –
| Operatør | Beskrivelse |
|---|---|
| == | Returnerer sann hvis strengene er like |
| != | Returnerer sann hvis strengene ikke er like |
| -n | Returnerer sann hvis strengen som skal testes ikke er null |
| -Med | Returnerer sann hvis strengen som skal testes er null |
Aritmetiske operatorer brukes for å kontrollere de aritmetiske-baserte betingelsene. Som mindre enn, større enn, lik osv. Her er en beskrivende tabell med alle operatorene –
| Operatør | Beskrivelse |
|---|---|
| -eq | Lik |
| -ge | Større enn eller lik |
| -gt | Større enn |
| - den | Mindre enn eller lik |
| -lt | Mindre enn |
| - er | Ikke lik |
Nedenfor er et enkelt eksempel på det samme –
Eksempel på skript:
if [ 10 -eq 10 ];then echo 'Equal' fi if [ 'Geeks' == 'Geeks' ]; then echo 'same' #output else echo 'not same' fi
Utdata av streng- og numeriske sammenligninger:
Equal same
I dette eksemplet er den første (-eq ) en numerisk sammenligning som sjekker for likhet. Den andre ( == ) er også sjekk for likhet, men i strenger. Nedenfor er terminalskallbildet etter å ha utført følgende skript -
Vi vil lære mer om dette konseptet i de neste artiklene.
Konklusjon
I denne artikkelen diskuterer vi Bash-skripting som spiller en viktig rolle i automatisering av oppgaver i Linux-miljøet. Som en kommandolinjetolk tilbyr Bash enkelhet og brukervennlighet for utviklere å lage skript som strømlinjeformer rutineoperasjoner, manipulerer filer og utfører komplekse oppgaver. Mens Bash-skript kan øke produktiviteten ved å unngå repeterende handlinger og utføre sekvenser av kommandoer effektivt, kommer de også med hensyn som å administrere tillatelser, håndtere variabler og implementere beslutningsstrukturer. Ved å mestre Bash-skripting kan brukere utnytte kraften til å optimere arbeidsflyten og forbedre systemadministrasjonsoppgaver på Linux-plattformer.