logo

Hur man skapar ett skalskript i linux

Shell är ett gränssnitt för operativsystemet. Den accepterar kommandon från användare och tolkar dem till operativsystemet. Om du vill köra ett gäng kommandon tillsammans kan du göra det genom att skapa ett skalskript. Skalskript är mycket användbara om du behöver göra en uppgift rutinmässigt, som att ta en säkerhetskopia. Du kan lista dessa kommandon och köra dem alla med bara ett enda skript. Låt oss se hur du kan skapa ett skalskript och köra det på Linux.

Skapa ett skalskript

Logga in på din Linux-maskin och öppna terminalen, navigera till mappen där du vill lagra skalskriptet. Skalskript slutar med tillägget .sh. Låt oss skapa vårt första skalskript. Skriv in



touch script.sh>

Nu är den här skriptfilen inte körbar som standard, vi måste ge den körbara behörigheten till den här filen. Skriv in

chmod +x script.sh>

Nu kommer vi att lägga till några kommandon till detta skalskript. Öppna det här skalskriptet med valfri textredigerare (kommandoradsbaserad eller GUI-baserad) och lägg till några kommandon. Vi kommer att använda nano. Skriv in

nano script.sh>

Lägg till följande kommandon för att testa detta skalskript



echo This is my first shell script touch testfile ls echo End of my shell script>

Spara ändringarna och kör skalskriptet genom att skriva in

./script.sh>

Skärmdump av stegen ovan

Du kan se, den körde alla de angivna kommandona.



Kommentarer i skalskriptet

Alla rader som börjar med # i skalskriptet behandlas som en kommentar och ignoreras av skalet under körningen, förutom shebang-raden, som vi kommer att se senare i den här artikeln. Låt oss se ett exempel. Ett skalskript skapas med följande innehåll.

# This is a comment echo Testing comments in shell script>

Kommentarer i Shell Script

aws sns

Du kan se, kommentaren ignoreras.

Variabler i Shell Script

Ja, Shell-skript stöder användningen av variabler, och vi behöver inte definiera en variabels typ under dess deklaration. Det finns två typer av variabler:

  • Systemdefinierade variabler
  • Användardefinierade variabler.

Systemdefinierade variabler, även kallade miljövariabler, är vanligtvis versaler. Du kan se alla aktuella miljövariabler med kommandot printenv. Användardefinierade variabler ställs in av användaren och de existerar endast under skriptkörning. Du kan definiera en variabel genom att helt enkelt skriva in dess namn och tilldela ett värde med = tecken och komma åt en variabel genom att lägga till en $ före variabelnamnet. Variabler visas i följande exempelskript.

# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Variabler i Shell Script

Definiera Shell Script-tolken

Det finns många skal tillgängliga i Linux, som The bourne shell(sh), The Korn Shell(ksh) och GNU Bourne-Again Shell(bash). Skript skrivna för sh-skalet kallas skalskript, och de kan tolkas av både ksh- och bash-skalen. ksh och Bash är förbättrade versioner av det ursprungliga sh-skalet och de har fler funktioner än sh. Bash är i allmänhet standardskalet i de flesta Linux-distributioner och skript skrivna specifikt för bash-skal kallas bash-skript.

Du kan ange vilket skal skriptet ska använda, även om skriptet körs från en annan skalterminal. För att göra detta, lägg till #! ovanpå skriptfilen, följt av den absoluta sökvägen för det valda skalet. För att ange bash som tolk, lägg till följande rad ovanpå skalskriptet.

#!/bin/bash>

Denna linje kallas shebang-linjen.

Notera: Detta fungerar bara om bash är installerat på ditt system.

Jämförelseoperatörer

Du kan jämföra två variabler i skalskript. Vi gör dessa jämförelser för att fatta beslut, vi kommer att se hur vi gör det senare i den här artikeln, men innan dess är här en lista över några jämförelseoperatörer.

govinda skådespelare

Heltalsjämförelse

Operatör Beskrivning
-ekv är lika med
- är är inte lika med
-gt är större än
-ge är större än eller lika med
-lt är mindre än
-de är mindre än eller lika med

Strängjämförelse

Operatör Beskrivning
== är lika med
!= är inte lika med
< är mindre än, i alfabetisk ASCII-ordning
> är större än, i alfabetisk ASCII-ordning

Vi lägger till ett före eftersom de måste escapes när de skrivs i [ ]-konstruktionen. Låt oss nu se var dessa används.

Villkorliga uttalanden

Villkorssatser används för att exekvera ett kodblock endast när vissa villkor är uppfyllda. Skalskript stöder användningen av villkorliga uttalanden. Vi använder jämförelseoperatörer för att kontrollera villkoren. Låt oss se några villkorliga uttalanden.

Om uttalande

Den kontrollerar villkoret, och om det är betingat sant, utför det kommandona.

Syntax

if [ condition ] then #statements fi>

Låt oss se ett exempel.

#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.if uttalande

Om-annat uttalande

I en if-else-sats kan du ange en uppsättning kommandon som ska köras om villkoret inte är uppfyllt.

Syntax

if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>

Låt oss se ett exempel

#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

.if-else uttalande

Det finns andra villkorliga uttalanden, du kan läsa om dem här .

Notera: Skriv ett mellanslag efter [ och före ] medan du anger villkoret som ska kontrolleras, annars får du ett felmeddelande.

Slingor

Med loopar kan du en uppsättning kommandon om och om igen, tills ett visst villkor är uppfyllt. Låt oss se några av slingorna.

Medan loop

Den börjar köra de angivna kommandona om villkoret är sant och upprepar dem tills villkoret är falskt.

Syntax

while [ condition ] do #set of statements done>

Låt oss se ett exempel.

#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Medan loop

Vi bifogar en expr-sats inom ` ` när vi tilldelar den till en variabel. Du kan läsa om kommandot expr här.

inbunden vs pocketbok

För loop

I en for-loop itererar variabeln över en lista med värden och slutar när det inte finns fler värden att iterera över.

Syntax

for var in val1 val2 val3 do #statements done>

Låt oss se ett exempel.

#!/bin/sh for var in 2 4 5 8 do echo $var done>

för slinga

Du kan läsa om loopar i detalj här .

Positionella argument

Positionella argument är de argument eller värden som vi skickar till skalskriptet medan vi kör skriptet. De nås av variablerna

Shell är ett gränssnitt för operativsystemet. Den accepterar kommandon från användare och tolkar dem till operativsystemet. Om du vill köra ett gäng kommandon tillsammans kan du göra det genom att skapa ett skalskript. Skalskript är mycket användbara om du behöver göra en uppgift rutinmässigt, som att ta en säkerhetskopia. Du kan lista dessa kommandon och köra dem alla med bara ett enda skript. Låt oss se hur du kan skapa ett skalskript och köra det på Linux.

Skapa ett skalskript

Logga in på din Linux-maskin och öppna terminalen, navigera till mappen där du vill lagra skalskriptet. Skalskript slutar med tillägget .sh. Låt oss skapa vårt första skalskript. Skriv in

touch script.sh>

Nu är den här skriptfilen inte körbar som standard, vi måste ge den körbara behörigheten till den här filen. Skriv in

chmod +x script.sh>

Nu kommer vi att lägga till några kommandon till detta skalskript. Öppna det här skalskriptet med valfri textredigerare (kommandoradsbaserad eller GUI-baserad) och lägg till några kommandon. Vi kommer att använda nano. Skriv in

nano script.sh>

Lägg till följande kommandon för att testa detta skalskript

echo This is my first shell script touch testfile ls echo End of my shell script>

Spara ändringarna och kör skalskriptet genom att skriva in

./script.sh>

Skärmdump av stegen ovan

Du kan se, den körde alla de angivna kommandona.

Kommentarer i skalskriptet

Alla rader som börjar med # i skalskriptet behandlas som en kommentar och ignoreras av skalet under körningen, förutom shebang-raden, som vi kommer att se senare i den här artikeln. Låt oss se ett exempel. Ett skalskript skapas med följande innehåll.

# This is a comment echo Testing comments in shell script>

Kommentarer i Shell Script

Du kan se, kommentaren ignoreras.

Variabler i Shell Script

Ja, Shell-skript stöder användningen av variabler, och vi behöver inte definiera en variabels typ under dess deklaration. Det finns två typer av variabler:

  • Systemdefinierade variabler
  • Användardefinierade variabler.

Systemdefinierade variabler, även kallade miljövariabler, är vanligtvis versaler. Du kan se alla aktuella miljövariabler med kommandot printenv. Användardefinierade variabler ställs in av användaren och de existerar endast under skriptkörning. Du kan definiera en variabel genom att helt enkelt skriva in dess namn och tilldela ett värde med = tecken och komma åt en variabel genom att lägga till en $ före variabelnamnet. Variabler visas i följande exempelskript.

# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Variabler i Shell Script

Definiera Shell Script-tolken

Det finns många skal tillgängliga i Linux, som The bourne shell(sh), The Korn Shell(ksh) och GNU Bourne-Again Shell(bash). Skript skrivna för sh-skalet kallas skalskript, och de kan tolkas av både ksh- och bash-skalen. ksh och Bash är förbättrade versioner av det ursprungliga sh-skalet och de har fler funktioner än sh. Bash är i allmänhet standardskalet i de flesta Linux-distributioner och skript skrivna specifikt för bash-skal kallas bash-skript.

Du kan ange vilket skal skriptet ska använda, även om skriptet körs från en annan skalterminal. För att göra detta, lägg till #! ovanpå skriptfilen, följt av den absoluta sökvägen för det valda skalet. För att ange bash som tolk, lägg till följande rad ovanpå skalskriptet.

#!/bin/bash>

Denna linje kallas shebang-linjen.

Notera: Detta fungerar bara om bash är installerat på ditt system.

Jämförelseoperatörer

Du kan jämföra två variabler i skalskript. Vi gör dessa jämförelser för att fatta beslut, vi kommer att se hur vi gör det senare i den här artikeln, men innan dess är här en lista över några jämförelseoperatörer.

Heltalsjämförelse

Operatör Beskrivning
-ekv är lika med
- är är inte lika med
-gt är större än
-ge är större än eller lika med
-lt är mindre än
-de är mindre än eller lika med

Strängjämförelse

Operatör Beskrivning
== är lika med
!= är inte lika med
< är mindre än, i alfabetisk ASCII-ordning
> är större än, i alfabetisk ASCII-ordning

Vi lägger till ett före eftersom de måste escapes när de skrivs i [ ]-konstruktionen. Låt oss nu se var dessa används.

Villkorliga uttalanden

Villkorssatser används för att exekvera ett kodblock endast när vissa villkor är uppfyllda. Skalskript stöder användningen av villkorliga uttalanden. Vi använder jämförelseoperatörer för att kontrollera villkoren. Låt oss se några villkorliga uttalanden.

Om uttalande

Den kontrollerar villkoret, och om det är betingat sant, utför det kommandona.

Syntax

if [ condition ] then #statements fi>

Låt oss se ett exempel.

#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.if uttalande

Om-annat uttalande

I en if-else-sats kan du ange en uppsättning kommandon som ska köras om villkoret inte är uppfyllt.

Syntax

if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>

Låt oss se ett exempel

#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

.if-else uttalande

Det finns andra villkorliga uttalanden, du kan läsa om dem här .

Notera: Skriv ett mellanslag efter [ och före ] medan du anger villkoret som ska kontrolleras, annars får du ett felmeddelande.

Slingor

Med loopar kan du en uppsättning kommandon om och om igen, tills ett visst villkor är uppfyllt. Låt oss se några av slingorna.

Medan loop

Den börjar köra de angivna kommandona om villkoret är sant och upprepar dem tills villkoret är falskt.

Syntax

while [ condition ] do #set of statements done>

Låt oss se ett exempel.

#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Medan loop

Vi bifogar en expr-sats inom ` ` när vi tilldelar den till en variabel. Du kan läsa om kommandot expr här.

För loop

I en for-loop itererar variabeln över en lista med värden och slutar när det inte finns fler värden att iterera över.

Syntax

for var in val1 val2 val3 do #statements done>

Låt oss se ett exempel.

#!/bin/sh for var in 2 4 5 8 do echo $var done>

för slinga

Du kan läsa om loopar i detalj här .

Positionella argument

Positionella argument är de argument eller värden som vi skickar till skalskriptet medan vi kör skriptet. De nås av variablerna $0, $1, $2 ... $9. Utöver det refereras de till av ${10}, ${11} och så vidare. $# lagrar antalet godkända argument och $0 lagrar namnet på skriptet. Låt oss se ett exempel för att förstå allt detta.

#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'>

För att skicka argumenten, skriv bara in dem i terminalen efter skriptnamnet som visas nedan.

Positionella argument

Lagra utdata av kommandon

Du kan lagra utdata från kommandon i en variabel i ett skalskript. Det finns två sätt att göra det.

Syntax

#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>

Låt oss se ett exempel.

#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Lagra utdata av kommandon

Avsluta koder för skalkommandon

Närhelst ett kommando avslutas och returnerar kontrollen till den överordnade processen, returnerar det exitkoder mellan 0 och 255. Exit-kod 0 betyder att kommandot lyckades, och alla andra exit-koder betyder att kommandot misslyckades. Du kan se utgångskoden efter att ha kört ett kommando genom att gå till $? variabel. Se exemplet nedan.

exit-koden för skalkommandot

Du kan manuellt ställa in en utgångskod för ditt skalskript. Detta kan användas med villkorliga uttalanden för att förmedla om manusets syfte uppnåddes eller inte.

Exempel

#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

exit-koden för skalkommandot



, , ... . Utöver det refereras de till av , och så vidare. $# lagrar antalet godkända argument och

Shell är ett gränssnitt för operativsystemet. Den accepterar kommandon från användare och tolkar dem till operativsystemet. Om du vill köra ett gäng kommandon tillsammans kan du göra det genom att skapa ett skalskript. Skalskript är mycket användbara om du behöver göra en uppgift rutinmässigt, som att ta en säkerhetskopia. Du kan lista dessa kommandon och köra dem alla med bara ett enda skript. Låt oss se hur du kan skapa ett skalskript och köra det på Linux.

Skapa ett skalskript

Logga in på din Linux-maskin och öppna terminalen, navigera till mappen där du vill lagra skalskriptet. Skalskript slutar med tillägget .sh. Låt oss skapa vårt första skalskript. Skriv in

touch script.sh>

Nu är den här skriptfilen inte körbar som standard, vi måste ge den körbara behörigheten till den här filen. Skriv in

chmod +x script.sh>

Nu kommer vi att lägga till några kommandon till detta skalskript. Öppna det här skalskriptet med valfri textredigerare (kommandoradsbaserad eller GUI-baserad) och lägg till några kommandon. Vi kommer att använda nano. Skriv in

nano script.sh>

Lägg till följande kommandon för att testa detta skalskript

echo This is my first shell script touch testfile ls echo End of my shell script>

Spara ändringarna och kör skalskriptet genom att skriva in

./script.sh>

Skärmdump av stegen ovan

Du kan se, den körde alla de angivna kommandona.

Kommentarer i skalskriptet

Alla rader som börjar med # i skalskriptet behandlas som en kommentar och ignoreras av skalet under körningen, förutom shebang-raden, som vi kommer att se senare i den här artikeln. Låt oss se ett exempel. Ett skalskript skapas med följande innehåll.

# This is a comment echo Testing comments in shell script>

Kommentarer i Shell Script

Du kan se, kommentaren ignoreras.

Variabler i Shell Script

Ja, Shell-skript stöder användningen av variabler, och vi behöver inte definiera en variabels typ under dess deklaration. Det finns två typer av variabler:

  • Systemdefinierade variabler
  • Användardefinierade variabler.

Systemdefinierade variabler, även kallade miljövariabler, är vanligtvis versaler. Du kan se alla aktuella miljövariabler med kommandot printenv. Användardefinierade variabler ställs in av användaren och de existerar endast under skriptkörning. Du kan definiera en variabel genom att helt enkelt skriva in dess namn och tilldela ett värde med = tecken och komma åt en variabel genom att lägga till en $ före variabelnamnet. Variabler visas i följande exempelskript.

# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Variabler i Shell Script

Definiera Shell Script-tolken

Det finns många skal tillgängliga i Linux, som The bourne shell(sh), The Korn Shell(ksh) och GNU Bourne-Again Shell(bash). Skript skrivna för sh-skalet kallas skalskript, och de kan tolkas av både ksh- och bash-skalen. ksh och Bash är förbättrade versioner av det ursprungliga sh-skalet och de har fler funktioner än sh. Bash är i allmänhet standardskalet i de flesta Linux-distributioner och skript skrivna specifikt för bash-skal kallas bash-skript.

Du kan ange vilket skal skriptet ska använda, även om skriptet körs från en annan skalterminal. För att göra detta, lägg till #! ovanpå skriptfilen, följt av den absoluta sökvägen för det valda skalet. För att ange bash som tolk, lägg till följande rad ovanpå skalskriptet.

#!/bin/bash>

Denna linje kallas shebang-linjen.

Notera: Detta fungerar bara om bash är installerat på ditt system.

Jämförelseoperatörer

Du kan jämföra två variabler i skalskript. Vi gör dessa jämförelser för att fatta beslut, vi kommer att se hur vi gör det senare i den här artikeln, men innan dess är här en lista över några jämförelseoperatörer.

Heltalsjämförelse

Operatör Beskrivning
-ekv är lika med
- är är inte lika med
-gt är större än
-ge är större än eller lika med
-lt är mindre än
-de är mindre än eller lika med

Strängjämförelse

Operatör Beskrivning
== är lika med
!= är inte lika med
< är mindre än, i alfabetisk ASCII-ordning
> är större än, i alfabetisk ASCII-ordning

Vi lägger till ett före eftersom de måste escapes när de skrivs i [ ]-konstruktionen. Låt oss nu se var dessa används.

Villkorliga uttalanden

Villkorssatser används för att exekvera ett kodblock endast när vissa villkor är uppfyllda. Skalskript stöder användningen av villkorliga uttalanden. Vi använder jämförelseoperatörer för att kontrollera villkoren. Låt oss se några villkorliga uttalanden.

Om uttalande

Den kontrollerar villkoret, och om det är betingat sant, utför det kommandona.

Syntax

if [ condition ] then #statements fi>

Låt oss se ett exempel.

#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.if uttalande

Om-annat uttalande

I en if-else-sats kan du ange en uppsättning kommandon som ska köras om villkoret inte är uppfyllt.

Syntax

if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>

Låt oss se ett exempel

#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

.if-else uttalande

Det finns andra villkorliga uttalanden, du kan läsa om dem här .

Notera: Skriv ett mellanslag efter [ och före ] medan du anger villkoret som ska kontrolleras, annars får du ett felmeddelande.

Slingor

Med loopar kan du en uppsättning kommandon om och om igen, tills ett visst villkor är uppfyllt. Låt oss se några av slingorna.

Medan loop

Den börjar köra de angivna kommandona om villkoret är sant och upprepar dem tills villkoret är falskt.

Syntax

while [ condition ] do #set of statements done>

Låt oss se ett exempel.

#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Medan loop

Vi bifogar en expr-sats inom ` ` när vi tilldelar den till en variabel. Du kan läsa om kommandot expr här.

För loop

I en for-loop itererar variabeln över en lista med värden och slutar när det inte finns fler värden att iterera över.

Syntax

for var in val1 val2 val3 do #statements done>

Låt oss se ett exempel.

#!/bin/sh for var in 2 4 5 8 do echo $var done>

för slinga

Du kan läsa om loopar i detalj här .

Positionella argument

Positionella argument är de argument eller värden som vi skickar till skalskriptet medan vi kör skriptet. De nås av variablerna $0, $1, $2 ... $9. Utöver det refereras de till av ${10}, ${11} och så vidare. $# lagrar antalet godkända argument och $0 lagrar namnet på skriptet. Låt oss se ett exempel för att förstå allt detta.

#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'>

För att skicka argumenten, skriv bara in dem i terminalen efter skriptnamnet som visas nedan.

Positionella argument

Lagra utdata av kommandon

Du kan lagra utdata från kommandon i en variabel i ett skalskript. Det finns två sätt att göra det.

Syntax

#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>

Låt oss se ett exempel.

#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Lagra utdata av kommandon

Avsluta koder för skalkommandon

Närhelst ett kommando avslutas och returnerar kontrollen till den överordnade processen, returnerar det exitkoder mellan 0 och 255. Exit-kod 0 betyder att kommandot lyckades, och alla andra exit-koder betyder att kommandot misslyckades. Du kan se utgångskoden efter att ha kört ett kommando genom att gå till $? variabel. Se exemplet nedan.

exit-koden för skalkommandot

Du kan manuellt ställa in en utgångskod för ditt skalskript. Detta kan användas med villkorliga uttalanden för att förmedla om manusets syfte uppnåddes eller inte.

Exempel

#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

exit-koden för skalkommandot



lagrar namnet på skriptet. Låt oss se ett exempel för att förstå allt detta.

#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is 

Shell är ett gränssnitt för operativsystemet. Den accepterar kommandon från användare och tolkar dem till operativsystemet. Om du vill köra ett gäng kommandon tillsammans kan du göra det genom att skapa ett skalskript. Skalskript är mycket användbara om du behöver göra en uppgift rutinmässigt, som att ta en säkerhetskopia. Du kan lista dessa kommandon och köra dem alla med bara ett enda skript. Låt oss se hur du kan skapa ett skalskript och köra det på Linux.

Skapa ett skalskript

Logga in på din Linux-maskin och öppna terminalen, navigera till mappen där du vill lagra skalskriptet. Skalskript slutar med tillägget .sh. Låt oss skapa vårt första skalskript. Skriv in

touch script.sh>

Nu är den här skriptfilen inte körbar som standard, vi måste ge den körbara behörigheten till den här filen. Skriv in

chmod +x script.sh>

Nu kommer vi att lägga till några kommandon till detta skalskript. Öppna det här skalskriptet med valfri textredigerare (kommandoradsbaserad eller GUI-baserad) och lägg till några kommandon. Vi kommer att använda nano. Skriv in

nano script.sh>

Lägg till följande kommandon för att testa detta skalskript

echo This is my first shell script touch testfile ls echo End of my shell script>

Spara ändringarna och kör skalskriptet genom att skriva in

./script.sh>

Skärmdump av stegen ovan

Du kan se, den körde alla de angivna kommandona.

Kommentarer i skalskriptet

Alla rader som börjar med # i skalskriptet behandlas som en kommentar och ignoreras av skalet under körningen, förutom shebang-raden, som vi kommer att se senare i den här artikeln. Låt oss se ett exempel. Ett skalskript skapas med följande innehåll.

# This is a comment echo Testing comments in shell script>

Kommentarer i Shell Script

Du kan se, kommentaren ignoreras.

Variabler i Shell Script

Ja, Shell-skript stöder användningen av variabler, och vi behöver inte definiera en variabels typ under dess deklaration. Det finns två typer av variabler:

  • Systemdefinierade variabler
  • Användardefinierade variabler.

Systemdefinierade variabler, även kallade miljövariabler, är vanligtvis versaler. Du kan se alla aktuella miljövariabler med kommandot printenv. Användardefinierade variabler ställs in av användaren och de existerar endast under skriptkörning. Du kan definiera en variabel genom att helt enkelt skriva in dess namn och tilldela ett värde med = tecken och komma åt en variabel genom att lägga till en $ före variabelnamnet. Variabler visas i följande exempelskript.

# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Variabler i Shell Script

Definiera Shell Script-tolken

Det finns många skal tillgängliga i Linux, som The bourne shell(sh), The Korn Shell(ksh) och GNU Bourne-Again Shell(bash). Skript skrivna för sh-skalet kallas skalskript, och de kan tolkas av både ksh- och bash-skalen. ksh och Bash är förbättrade versioner av det ursprungliga sh-skalet och de har fler funktioner än sh. Bash är i allmänhet standardskalet i de flesta Linux-distributioner och skript skrivna specifikt för bash-skal kallas bash-skript.

Du kan ange vilket skal skriptet ska använda, även om skriptet körs från en annan skalterminal. För att göra detta, lägg till #! ovanpå skriptfilen, följt av den absoluta sökvägen för det valda skalet. För att ange bash som tolk, lägg till följande rad ovanpå skalskriptet.

#!/bin/bash>

Denna linje kallas shebang-linjen.

Notera: Detta fungerar bara om bash är installerat på ditt system.

Jämförelseoperatörer

Du kan jämföra två variabler i skalskript. Vi gör dessa jämförelser för att fatta beslut, vi kommer att se hur vi gör det senare i den här artikeln, men innan dess är här en lista över några jämförelseoperatörer.

Heltalsjämförelse

Operatör Beskrivning
-ekv är lika med
- är är inte lika med
-gt är större än
-ge är större än eller lika med
-lt är mindre än
-de är mindre än eller lika med

Strängjämförelse

Operatör Beskrivning
== är lika med
!= är inte lika med
< är mindre än, i alfabetisk ASCII-ordning
> är större än, i alfabetisk ASCII-ordning

Vi lägger till ett före eftersom de måste escapes när de skrivs i [ ]-konstruktionen. Låt oss nu se var dessa används.

Villkorliga uttalanden

Villkorssatser används för att exekvera ett kodblock endast när vissa villkor är uppfyllda. Skalskript stöder användningen av villkorliga uttalanden. Vi använder jämförelseoperatörer för att kontrollera villkoren. Låt oss se några villkorliga uttalanden.

Om uttalande

Den kontrollerar villkoret, och om det är betingat sant, utför det kommandona.

Syntax

if [ condition ] then #statements fi>

Låt oss se ett exempel.

#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.if uttalande

Om-annat uttalande

I en if-else-sats kan du ange en uppsättning kommandon som ska köras om villkoret inte är uppfyllt.

Syntax

if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>

Låt oss se ett exempel

#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

.if-else uttalande

Det finns andra villkorliga uttalanden, du kan läsa om dem här .

Notera: Skriv ett mellanslag efter [ och före ] medan du anger villkoret som ska kontrolleras, annars får du ett felmeddelande.

Slingor

Med loopar kan du en uppsättning kommandon om och om igen, tills ett visst villkor är uppfyllt. Låt oss se några av slingorna.

Medan loop

Den börjar köra de angivna kommandona om villkoret är sant och upprepar dem tills villkoret är falskt.

Syntax

while [ condition ] do #set of statements done>

Låt oss se ett exempel.

#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Medan loop

Vi bifogar en expr-sats inom ` ` när vi tilldelar den till en variabel. Du kan läsa om kommandot expr här.

För loop

I en for-loop itererar variabeln över en lista med värden och slutar när det inte finns fler värden att iterera över.

Syntax

for var in val1 val2 val3 do #statements done>

Låt oss se ett exempel.

#!/bin/sh for var in 2 4 5 8 do echo $var done>

för slinga

Du kan läsa om loopar i detalj här .

Positionella argument

Positionella argument är de argument eller värden som vi skickar till skalskriptet medan vi kör skriptet. De nås av variablerna $0, $1, $2 ... $9. Utöver det refereras de till av ${10}, ${11} och så vidare. $# lagrar antalet godkända argument och $0 lagrar namnet på skriptet. Låt oss se ett exempel för att förstå allt detta.

#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'>

För att skicka argumenten, skriv bara in dem i terminalen efter skriptnamnet som visas nedan.

Positionella argument

Lagra utdata av kommandon

Du kan lagra utdata från kommandon i en variabel i ett skalskript. Det finns två sätt att göra det.

Syntax

#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>

Låt oss se ett exempel.

#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Lagra utdata av kommandon

Avsluta koder för skalkommandon

Närhelst ett kommando avslutas och returnerar kontrollen till den överordnade processen, returnerar det exitkoder mellan 0 och 255. Exit-kod 0 betyder att kommandot lyckades, och alla andra exit-koder betyder att kommandot misslyckades. Du kan se utgångskoden efter att ha kört ett kommando genom att gå till $? variabel. Se exemplet nedan.

exit-koden för skalkommandot

Du kan manuellt ställa in en utgångskod för ditt skalskript. Detta kan användas med villkorliga uttalanden för att förmedla om manusets syfte uppnåddes eller inte.

Exempel

#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

exit-koden för skalkommandot



' echo 'First argument is ' echo 'Second argument is '>

För att skicka argumenten, skriv bara in dem i terminalen efter skriptnamnet som visas nedan.

Positionella argument

Lagra utdata av kommandon

Du kan lagra utdata från kommandon i en variabel i ett skalskript. Det finns två sätt att göra det.

Syntax

#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>

Låt oss se ett exempel.

#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Lagra utdata av kommandon

Avsluta koder för skalkommandon

Närhelst ett kommando avslutas och returnerar kontrollen till den överordnade processen, returnerar det exitkoder mellan 0 och 255. Exit-kod 0 betyder att kommandot lyckades, och alla andra exit-koder betyder att kommandot misslyckades. Du kan se utgångskoden efter att ha kört ett kommando genom att gå till $? variabel. Se exemplet nedan.

exit-koden för skalkommandot

Du kan manuellt ställa in en utgångskod för ditt skalskript. Detta kan användas med villkorliga uttalanden för att förmedla om manusets syfte uppnåddes eller inte.

Exempel

#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

exit-koden för skalkommandot