Bash är en kommandoradstolk eller Unix Shell och den används ofta i GNU/Linux operativsystem. Den är skriven av Brian Jhan Fox. Det används som ett standardinloggningsskal för de flesta Linux-distributioner. Skriptning används för att automatisera utförandet av uppgifterna så att människor inte behöver utföra dem individuellt. Bash scripting är ett utmärkt sätt att automatisera olika typer av uppgifter i ett system. Utvecklare kan undvika att göra repetitiva uppgifter med bash-skript.
Bash-skript stöder variabler, villkorliga uttalanden och loopar precis som programmeringsspråk. Nedan är några av tillämpningarna för Bash Scripts –
Innehållsförteckning
- Tillämpningar av Bash-skript:
- Fördelar med Bash-skript:
- Hur man skriver Bash-skript?
- Filnamn och behörigheter
- Variabler
- Ingång och utgång
- Funktioner
- Beslutsfattande
- Sträng- och numeriska jämförelser
Tillämpningar av Bash-skript:
- Manipulera filer
- Utföra rutinuppgifter som säkerhetskopiering
- Automatisering
Fördelarna med att använda Bash-skript ges nedan -
Fördelar med Bash-skript:
- Det är enkelt.
- Det hjälper till att undvika att göra repetitiva uppgifter
- Lätt att använda
- Ofta utförda uppgifter kan automatiseras
- En sekvens av kommandon kan köras som ett enda kommando.
Nackdelarna med Bash-skripten ges nedan -
Nackdelar med Bash-skript:
- Alla misstag när du skriver kan bli kostsamma.
- En ny process lanserades för nästan varje skalkommando som körs
- Långsam exekveringshastighet
- Kompatibilitetsproblem mellan olika plattformar
Hur man skriver Bash-skript?
För att skriva ett Bash-skript följer vi stegen –
- Först skapar vi en fil med filtillägget .sh.
- Därefter kommer vi att skriva ner bash-skripten i den
- Efter det kommer vi att ge exekveringstillstånd till det.
För att skapa och skriva en fil med tillägget .sh kan vi använda gedit textredigerare. Kommandot för det blir -
gedit scriptname.sh>
Den första raden i vår skriptfil kommer att vara -
#!/bin/bash>
Detta kommer att berätta, systemet att använda Bash för exekvering. Sedan kan vi skriva våra egna manus.
Låt oss bara skriva ner ett enkelt skript som kommer att skriva ut några rader i terminalen. Koden för det blir -
expert system
#!/bin/bash echo 'Hello, techcodeview.com'>
Nu kommer vi att spara filen och ge exekveringsbehörighet till den. För att göra det använd följande kommando -
chmod +x scriptname.sh>
Nästa för att köra följande skript kommer vi att använda följande kommando -
./scriptname.sh>
Här är terminalskalets bildbild efter att ha utfört ovanstående kommandon enligt följande:
Här är skriptfilens namn gfg.sh.
Nu kan vi också skriva mer komplicerade kommandon med Bash Scripts. Här är ett exempel nedan där vi använder en villkorssats –
Exempelskript:
#!/bin/bash Age=17 if [ '$Age' -ge 18 ]; then echo 'You can vote' else echo 'You cannot vote' fi>
Produktion:
You cannot vote>
Här är terminalskalets bildbild efter att ha kört ovanstående skript enligt följande:
På ovanstående sätt kan vi köra flera Bash-kommandon samtidigt.
Låt oss nu titta på andra viktiga begrepp relaterade till Bash Scripting.
Filnamn och behörigheter
I exemplet ovan har vi sparat filen med hjälp av gfg.sh namn och även tillhandahållit exekveringstillstånd med hjälp av chmod kommando. Låt oss nu förstå varför vi har gjort det.
När vi skriver bash-skript bör vi spara vår fil med filtillägget .sh, så att Linux-systemet kan köra den. När vi först skapar en fil med filtillägget .sh har den ingen exekveringsbehörighet och utan exekveringsbehörighet kommer skriptet inte att fungera. Så vi bör ge exekveringstillstånd till det med hjälp av chmod kommando.
Filnamnet för ett bash-skript kan vara allt annat än enligt konventionen, det rekommenderas att använda ormskiftläge ( my_bash_script.sh ) eller bindestreck ( my-bash-script.sh ) för att namnge en skriptfil.
Variabler
Vi kan använda variabler i bash-skript. Nedan finns ett exempelprogram för att förstå användningen av variabler i Bash-skript.
Exempelskript:
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å, här har deklarerat två variabler namn och en annan är Ålder. Dessa variabler är tillgängliga med $Name och $Age. Det betyder att vi kan deklarera en variabel i ett bash-skript med hjälp av VariableName=Värde och kan komma åt den med hjälp av $VariableName. Här är terminalskalets bildbild efter att ha kört ovanstående skript enligt följande:
Det finns två typer av variabler i Bash Scripting. Konventionellt, om en variabel deklareras inuti en funktion är det i allmänhet en lokal variabel och om det deklareras utanför så är det en global variabel . I fallet med ett bash-skript är detta koncept lite annorlunda, här är vilken variabel som helst, oavsett om den är skriven inuti en funktion eller utanför en funktion som standard, en global variabel. Om vi vill göra en lokal variabel måste vi använda nyckelordet lokal.
Notera: Det är bästa praxis att alltid använda en lokal variabel i en funktion för att undvika onödig förvirring.
Ett exempel på detsamma ges nedan -
Exempelskript:
#!/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 lokala och globala 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>
Här i exemplet ovan är var2 en lokal variabel, så när vi kommer åt den från funktionen går den bra men när vi försöker komma åt den utanför funktionen ger den oss ett tomt resultat i utdata.
Å andra sidan, till skillnad från programmeringsspråk, även om var3 är definierad i en funktion fungerar den fortfarande som en global variabel och den kan nås utanför funktionen. Nedan visas terminalskalet efter att ha kört skriptet –
Ingång och utgång
Input & output är grundläggande begrepp för skalskript. Ett skript kan ta en eller flera ingångar och kan också producera noll eller många utgångar. Det kan till och med ge några fel. Låt oss förstå detta med ett exempel -
Exempelskript:
echo 'Enter filename' read filename if [ -e $filename ] then echo '$filename is exits on the directory' cat $filename else cat>$filnamn echo 'Fil skapad' fi>
Utmatning av in- och utdata:
Första gången:
Enter filename geeks.txt Hello Geek File created>
Andra gången:
Enter filename geeks.txt geeks.txt is exits on the directory Hello Geek>
Så i det här exemplet ovan, första gången, kunde skriptet inte hitta någon fil med det filnamnet, och else-blocket exekveras. Den skapade filen och lade in lite data i den filen. När vi kör den en andra gång med samma filnamn, hittar den filen. Så, är if-blocket exekveras och som visar innehållet i filen. Läsning av filinnehållet matas in och första gången anses data i filen vara utmatad. Här har vi använt > för att lagra innehållet i en fil. De > notation används för att omdirigera stdout till en fil. Å andra sidan kan vi använda 2> notation för att omdirigera stderr, och &> för att omdirigera både stdout och stderr.
Nedan är terminalskalet bildbild efter att ha kört följande skript -
Funktioner
I programmering är en funktion ett kodblock som utför vissa uppgifter och det kan anropas flera gånger för att utföra uppgifter. Det enklaste exemplet på användning av funktion i Bash-skript kan ges som –
Exempelskript:
#!/bin/bash #It is a function myFunction () { echo Hello World from techcodeview.com } #function call myFunction> Utdata av funktioner:
strängarray c
Hello World from techcodeview.com>
Exemplet ovan visar en funktion som skriver ut något när det anropas.
Så den grundläggande syntaxen för att skriva funktioner i ett Bash-skript kommer att vara -
Syntax för funktioner:
#for defining function_name(){ commands ..... } function_name # for calling> Utöver detta kan vi också ha funktioner med skickande argument och med returvärden.
Beslutsfattande
Inom programmering är beslutsfattande ett av de viktiga begreppen. Programmeraren tillhandahåller ett eller flera villkor för exekvering av ett kodblock. Om villkoren är uppfyllda exekveras endast dessa kodblock.
Två typer av beslutsfattande uttalanden används inom skalskript. Dom är -
1. Om-annat uttalande:
Om annat uttalande är ett villkorligt uttalande. Den kan användas för att exekvera två olika koder baserat på om det givna villkoret är uppfyllt eller inte.
Det finns ett par varianter som finns i if-else uttalandet. Dom är -
- om-fi
- om-annat-fi
- om-elif-else-fi
- kapslade if-else
Syntaxen för den enklaste kommer att vara -
Syntax för If-else-satsen:
if [ expression ]; then statements fi>
Exempelskript:
Name='Satyajit' if [ '$Name' = 'Satyajit' ]; then echo 'His name is Satyajit. It is true.' fi>
Utdata från if-else-satsen:
His name is Satyajit. It is true.>
I exemplet ovan, under villkorskontrollen matchar namnet och villkoret blir sant. Därför exekveras kodblocket som finns i if-blocket. Om namnet inte matchar kommer det inte att ha en utdata. Nedan är terminalskalet bildbild efter att ha kört följande skript -
2. case-sac uttalande:
case-sac fungerar i princip på samma sätt som switch-satsen i programmering. Ibland om vi måste kontrollera flera villkor kan det bli komplicerat att använda if-satser. I de ögonblicken kan vi använda ett case-sac-uttalande. Syntaxen blir -
Syntax för case-sac-sats:
case $var in Pattern 1) Statement 1;; Pattern n) Statement n;; esac>
Exempelskript:
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 från case-sac uttalande:
Profession : Technical Content Writer>
I exemplet ovan körde case-sac-satsen satsen som är en del av det matchade mönstret här 'Namn'. Nedan är terminalskalet bildbild efter att ha kört följande skript -
Sträng- och numeriska jämförelser
Strängjämförelsen innebär att vi i skalskriptet kan fatta beslut genom att också göra jämförelser inom strängar. Här är en beskrivande tabell med alla operatörer –
| Operatör | Beskrivning |
|---|---|
| == | Returnerar sant om strängarna är lika |
| != | Returnerar sant om strängarna inte är lika |
| -n | Returnerar sant om strängen som ska testas inte är null |
| -Med | Returnerar sant om strängen som ska testas är null |
Aritmetiska operatorer används för att kontrollera de aritmetiska villkoren. Som mindre än, större än, lika med, etc. Här är en beskrivande tabell med alla operatorer –
insättningspyton
| Operatör | Beskrivning |
|---|---|
| -ekv | Likvärdig |
| -ge | Större än eller lika med |
| -gt | Större än |
| -de | Mindre än eller lika |
| -lt | Mindre än |
| - är | Inte jämnlikt |
Nedan är ett enkelt exempel på detsamma –
Exempelskript:
if [ 10 -eq 10 ];then echo 'Equal' fi if [ 'Geeks' == 'Geeks' ]; then echo 'same' #output else echo 'not same' fi>
Utdata av sträng- och numeriska jämförelser:
Equal same>
I det här exemplet är den första (-eq ) en numerisk jämförelse som kontrollerar likhet. Den andra ( == ) är också kontroll för likhet men i strängar. Nedan är terminalskalets bildbild efter att ha kört följande skript -

Vi kommer att lära oss mer om detta koncept i nästa artiklar.
Slutsats
I den här artikeln diskuterar vi Bash-skript som spelar en viktig roll för att automatisera uppgifter inom Linux-miljön. Som en kommandoradstolk erbjuder Bash enkelhet och användarvänlighet för utvecklare att skapa skript som effektiviserar rutinoperationer, manipulerar filer och utför komplexa uppgifter. Även om Bash-skript kan förbättra produktiviteten genom att undvika upprepade åtgärder och utföra sekvenser av kommandon effektivt, kommer de också med överväganden som att hantera behörigheter, hantera variabler och implementera beslutsfattande strukturer. Genom att behärska Bash-skript kan användare utnyttja dess kraft för att optimera sitt arbetsflöde och förbättra systemadministrationsuppgifterna på Linux-plattformar.