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. 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 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 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 Lägg till följande kommandon för att testa detta skalskript Spara ändringarna och kör skalskriptet genom att skriva in Skärmdump av stegen ovan Du kan se, den körde alla de angivna kommandona. 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. Kommentarer i Shell Script Du kan se, kommentaren ignoreras. 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, ä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. Variabler i Shell Script 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. Denna linje kallas shebang-linjen. Notera: Detta fungerar bara om bash är installerat på ditt system. 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. 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. 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. Den kontrollerar villkoret, och om det är betingat sant, utför det kommandona. Syntax Låt oss se ett exempel. .if uttalande I en if-else-sats kan du ange en uppsättning kommandon som ska köras om villkoret inte är uppfyllt. Syntax Låt oss se ett exempel .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. 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. Den börjar köra de angivna kommandona om villkoret är sant och upprepar dem tills villkoret är falskt. Syntax Låt oss se ett exempel. 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. 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 Låt oss se ett exempel. för slinga Du kan läsa om loopar i detalj här . 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. För att skicka argumenten, skriv bara in dem i terminalen efter skriptnamnet som visas nedan. Positionella argument Du kan lagra utdata från kommandon i en variabel i ett skalskript. Det finns två sätt att göra det. Syntax Låt oss se ett exempel. Lagra utdata av kommandon 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 exit-koden för skalkommandot 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. 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 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 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 Lägg till följande kommandon för att testa detta skalskript Spara ändringarna och kör skalskriptet genom att skriva in Skärmdump av stegen ovan Du kan se, den körde alla de angivna kommandona. 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. Kommentarer i Shell Script Du kan se, kommentaren ignoreras. 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, ä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. Variabler i Shell Script 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. Denna linje kallas shebang-linjen. Notera: Detta fungerar bara om bash är installerat på ditt system. 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. 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. 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. Den kontrollerar villkoret, och om det är betingat sant, utför det kommandona. Syntax Låt oss se ett exempel. .if uttalande I en if-else-sats kan du ange en uppsättning kommandon som ska köras om villkoret inte är uppfyllt. Syntax Låt oss se ett exempel .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. 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. Den börjar köra de angivna kommandona om villkoret är sant och upprepar dem tills villkoret är falskt. Syntax Låt oss se ett exempel. 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. 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 Låt oss se ett exempel. för slinga Du kan läsa om loopar i detalj här . 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. För att skicka argumenten, skriv bara in dem i terminalen efter skriptnamnet som visas nedan. Positionella argument Du kan lagra utdata från kommandon i en variabel i ett skalskript. Det finns två sätt att göra det. Syntax Låt oss se ett exempel. Lagra utdata av kommandon 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 exit-koden för skalkommandotSkapa ett skalskript
touch script.sh>
chmod +x script.sh>
nano script.sh>
echo This is my first shell script touch testfile ls echo End of my shell script>
./script.sh>

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

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

Definiera Shell Script-tolken
#!/bin/bash>
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 Villkorliga uttalanden
Om uttalande
if [ condition ] then #statements fi>
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

Om-annat uttalande
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

Slingor
Medan loop
while [ condition ] do #set of statements done>
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

För loop
for var in val1 val2 val3 do #statements done>
#!/bin/sh for var in 2 4 5 8 do echo $var done>

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

Lagra utdata av kommandon
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Avsluta koder för skalkommandon

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

Skapa ett skalskript
touch script.sh>
chmod +x script.sh>
nano script.sh>
echo This is my first shell script touch testfile ls echo End of my shell script>
./script.sh>

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

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

Definiera Shell Script-tolken
#!/bin/bash>
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 Villkorliga uttalanden
Om uttalande
if [ condition ] then #statements fi>
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

Om-annat uttalande
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

Slingor
Medan loop
while [ condition ] do #set of statements done>
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

För loop
for var in val1 val2 val3 do #statements done>
#!/bin/sh for var in 2 4 5 8 do echo $var done>

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

Lagra utdata av kommandon
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Avsluta koder för skalkommandon

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

#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is' echo 'First argument is ' echo 'Second argument 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
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