Shell er et grensesnitt for operativsystemet. Den aksepterer kommandoer fra brukere og tolker dem til operativsystemet. Hvis du vil kjøre en haug med kommandoer sammen, kan du gjøre det ved å lage et shell-skript. Shell-skript er veldig nyttige hvis du trenger å gjøre en oppgave rutinemessig, som å ta en sikkerhetskopi. Du kan liste disse kommandoene og utføre dem alle med bare ett enkelt skript. La oss se hvordan du kan lage et skallskript og kjøre det på Linux.
Opprette et Shell-skript
Logg på Linux-maskinen din og åpne terminalen, naviger til mappen der du vil lagre skallskriptet. Shell-skript slutter med filtypen .sh. La oss lage vårt første shell-skript. Skriv inn
touch script.sh>
Nå er ikke denne skriptfilen kjørbar som standard, vi må gi den kjørbare tillatelsen til denne filen. Skriv inn
chmod +x script.sh>
Nå vil vi legge til noen kommandoer til dette skallskriptet. Åpne dette skallskriptet med en hvilken som helst tekstredigerer etter eget valg (kommandolinjebasert eller GUI-basert) og legg til noen kommandoer. Vi skal bruke nano. Skriv inn
nano script.sh>
Legg til følgende kommandoer for å teste dette skallskriptet
echo This is my first shell script touch testfile ls echo End of my shell script>
Lagre endringene, og kjør shell-skriptet ved å skrive inn
./script.sh>

Skjermbilde av trinnene ovenfor
Du kan se, den utførte alle de angitte kommandoene.
Kommentarer i shell-skriptet
Enhver linje som starter med # i skallskriptet behandles som en kommentar og ignoreres av skallet under utførelse, bortsett fra shebang-linjen, som vi vil se senere i denne artikkelen. La oss se et eksempel. Et shell-skript lages med følgende innhold.
# This is a comment echo Testing comments in shell script>

Kommentarer i Shell Script
Du kan se, kommentaren blir ignorert.
Variabler i Shell Script
Ja, Shell-skript støtter bruk av variabler, og vi trenger ikke definere en variabels type under deklarasjonen. Det er to typer variabler:
- Systemdefinerte variabler
- Brukerdefinerte variabler.
Systemdefinerte variabler, også kalt miljøvariabler, er vanligvis med store bokstaver. Du kan se alle gjeldende miljøvariabler ved å bruke printenv-kommandoen. Brukerdefinerte variabler angis av brukeren, og de eksisterer bare under kjøring av skript. Du kan definere en variabel ved ganske enkelt å skrive inn navnet og tilordne en verdi med =-tegn og få tilgang til en variabel ved å legge til en $ foran variabelnavnet. Variabler er demonstrert i følgende eksempelskript.
latex tekststørrelse
# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Variabler i Shell Script
Definere Shell Script-tolken
Det er mange skjell tilgjengelig i Linux, for eksempel The bourne shell(sh), The Korn Shell(ksh) og GNU Bourne-Again Shell(bash). Skript skrevet for sh-skallet kalles shell-skript, og de kan tolkes av både ksh- og bash-skallene. ksh og Bash er forbedrede versjoner av det originale sh-skallet og de har flere funksjoner enn sh. Bash er generelt standardskallet i de fleste Linux-distribusjoner, og skript skrevet spesielt for bash-skall kalles bash-skript.
Du kan spesifisere hvilket skall skriptet skal bruke, selv om skriptet kjøres fra en annen skallterminal. For å gjøre dette, legg til #! på toppen av skriptfilen, etterfulgt av den absolutte banen til det valgte skallet. For å spesifisere bash som tolk, legg til følgende linje på toppen av shell-skriptet.
#!/bin/bash>
Denne linjen kalles shebang-linjen.
Merk: Dette vil bare fungere hvis bash er installert på systemet ditt.
Sammenligningsoperatører
Du kan sammenligne to variabler i shell-skripting. Vi gjør disse sammenligningene for å ta avgjørelser, vi vil se hvordan du gjør det senere i denne artikkelen, men før det er her en liste over noen sammenligningsoperatører.
Heltallssammenlikning
| Operatør | Beskrivelse |
| -eq | er lik |
| - er | er ikke lik |
| -gt | er større enn |
| -ge | er større enn eller lik |
| -lt | er mindre enn |
| -de | er mindre enn eller lik |
Strengesammenligning
| Operatør | Beskrivelse |
| == | er lik |
| != | er ikke lik |
| < | er mindre enn, i ASCII alfabetisk rekkefølge |
| > | er større enn, i ASCII alfabetisk rekkefølge |
Vi legger til en før fordi de må escapes når de skrives inn i [ ]-konstruksjonen. La oss nå se hvor disse brukes.
Betingede uttalelser
Betingede setninger brukes til å utføre en kodeblokk bare når visse betingelser er oppfylt. Shell-skript støtter bruk av betingede utsagn. Vi bruker sammenligningsoperatører for å sjekke forholdene. La oss se noen betingede uttalelser.
gjennomstrekning
Hvis uttalelse
Den sjekker tilstanden, og hvis den er betinget sann, utfører den kommandoene.
Syntaks
if [ condition ] then #statements fi>
La oss se et eksempel.
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.if-uttalelse
If-else-uttalelse
I en if-else-setning kan du spesifisere et sett med kommandoer som skal kjøres hvis betingelsen ikke er oppfylt.
Syntaks
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
La oss se et eksempel
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

.if-else-uttalelse
Det er andre betingede uttalelser, du kan lese om dem her .
java-punkt
Merk: Skriv inn et mellomrom etter [ og før ] mens du spesifiserer betingelsen som skal sjekkes, ellers får du en feilmelding.
Løkker
Ved å bruke looper kan du et sett med kommandoer om og om igjen, til en viss betingelse er oppfylt. La oss se noen av løkkene.
Mens loop
Den begynner å kjøre de angitte kommandoene hvis betingelsen er sann og gjentar dem til betingelsen er usann.
Syntaks
while [ condition ] do #set of statements done>
La oss se et eksempel.
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Mens loop
Vi omslutter en expr-setning i ` ` når vi tilordner den til en variabel. Du kan lese om expr-kommandoen her.
For loop
I en for-løkke itererer variabelen over en liste med verdier og slutter når det ikke er flere verdier å iterere over.
Syntaks
for var in val1 val2 val3 do #statements done>
La oss se et eksempel.
#!/bin/sh for var in 2 4 5 8 do echo $var done>

for løkke
Du kan lese om løkker i detalj her .
Posisjonsargumenter
Posisjonelle argumenter er argumentene eller verdiene som vi sender til shell-skriptet mens vi kjører skriptet. De er tilgjengelige av variablene Shell er et grensesnitt for operativsystemet. Den aksepterer kommandoer fra brukere og tolker dem til operativsystemet. Hvis du vil kjøre en haug med kommandoer sammen, kan du gjøre det ved å lage et shell-skript. Shell-skript er veldig nyttige hvis du trenger å gjøre en oppgave rutinemessig, som å ta en sikkerhetskopi. Du kan liste disse kommandoene og utføre dem alle med bare ett enkelt skript. La oss se hvordan du kan lage et skallskript og kjøre det på Linux.
Opprette et Shell-skript
Logg på Linux-maskinen din og åpne terminalen, naviger til mappen der du vil lagre skallskriptet. Shell-skript slutter med filtypen .sh. La oss lage vårt første shell-skript. Skriv inn
touch script.sh>
Nå er ikke denne skriptfilen kjørbar som standard, vi må gi den kjørbare tillatelsen til denne filen. Skriv inn
chmod +x script.sh>
Nå vil vi legge til noen kommandoer til dette skallskriptet. Åpne dette skallskriptet med en hvilken som helst tekstredigerer etter eget valg (kommandolinjebasert eller GUI-basert) og legg til noen kommandoer. Vi skal bruke nano. Skriv inn
nano script.sh>
Legg til følgende kommandoer for å teste dette skallskriptet
echo This is my first shell script touch testfile ls echo End of my shell script>
Lagre endringene, og kjør shell-skriptet ved å skrive inn
./script.sh>

Skjermbilde av trinnene ovenfor
Du kan se, den utførte alle de angitte kommandoene.
Kommentarer i shell-skriptet
Enhver linje som starter med # i skallskriptet behandles som en kommentar og ignoreres av skallet under utførelse, bortsett fra shebang-linjen, som vi vil se senere i denne artikkelen. La oss se et eksempel. Et shell-skript lages med følgende innhold.
# This is a comment echo Testing comments in shell script>

Kommentarer i Shell Script
Du kan se, kommentaren blir ignorert.
Variabler i Shell Script
Ja, Shell-skript støtter bruk av variabler, og vi trenger ikke definere en variabels type under deklarasjonen. Det er to typer variabler:
- Systemdefinerte variabler
- Brukerdefinerte variabler.
Systemdefinerte variabler, også kalt miljøvariabler, er vanligvis med store bokstaver. Du kan se alle gjeldende miljøvariabler ved å bruke printenv-kommandoen. Brukerdefinerte variabler angis av brukeren, og de eksisterer bare under kjøring av skript. Du kan definere en variabel ved ganske enkelt å skrive inn navnet og tilordne en verdi med =-tegn og få tilgang til en variabel ved å legge til en $ foran variabelnavnet. Variabler er demonstrert i følgende eksempelskript.
# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Variabler i Shell Script
Definere Shell Script-tolken
Det er mange skjell tilgjengelig i Linux, for eksempel The bourne shell(sh), The Korn Shell(ksh) og GNU Bourne-Again Shell(bash). Skript skrevet for sh-skallet kalles shell-skript, og de kan tolkes av både ksh- og bash-skallene. ksh og Bash er forbedrede versjoner av det originale sh-skallet og de har flere funksjoner enn sh. Bash er generelt standardskallet i de fleste Linux-distribusjoner, og skript skrevet spesielt for bash-skall kalles bash-skript.
Du kan spesifisere hvilket skall skriptet skal bruke, selv om skriptet kjøres fra en annen skallterminal. For å gjøre dette, legg til #! på toppen av skriptfilen, etterfulgt av den absolutte banen til det valgte skallet. For å spesifisere bash som tolk, legg til følgende linje på toppen av shell-skriptet.
#!/bin/bash>
Denne linjen kalles shebang-linjen.
Merk: Dette vil bare fungere hvis bash er installert på systemet ditt.
Sammenligningsoperatører
Du kan sammenligne to variabler i shell-skripting. Vi gjør disse sammenligningene for å ta avgjørelser, vi vil se hvordan du gjør det senere i denne artikkelen, men før det er her en liste over noen sammenligningsoperatører.
Heltallssammenlikning
| Operatør | Beskrivelse |
| -eq | er lik |
| - er | er ikke lik |
| -gt | er større enn |
| -ge | er større enn eller lik |
| -lt | er mindre enn |
| -de | er mindre enn eller lik |
Strengesammenligning
| Operatør | Beskrivelse |
| == | er lik |
| != | er ikke lik |
| < | er mindre enn, i ASCII alfabetisk rekkefølge |
| > | er større enn, i ASCII alfabetisk rekkefølge |
Vi legger til en før fordi de må escapes når de skrives inn i [ ]-konstruksjonen. La oss nå se hvor disse brukes.
Betingede uttalelser
Betingede setninger brukes til å utføre en kodeblokk bare når visse betingelser er oppfylt. Shell-skript støtter bruk av betingede utsagn. Vi bruker sammenligningsoperatører for å sjekke forholdene. La oss se noen betingede uttalelser.
Hvis uttalelse
Den sjekker tilstanden, og hvis den er betinget sann, utfører den kommandoene.
Syntaks
if [ condition ] then #statements fi>
La oss se et eksempel.
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.if-uttalelse
If-else-uttalelse
I en if-else-setning kan du spesifisere et sett med kommandoer som skal kjøres hvis betingelsen ikke er oppfylt.
Syntaks
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
La oss se et eksempel
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

.if-else-uttalelse
Det er andre betingede uttalelser, du kan lese om dem her .
Merk: Skriv inn et mellomrom etter [ og før ] mens du spesifiserer betingelsen som skal sjekkes, ellers får du en feilmelding.
Løkker
Ved å bruke looper kan du et sett med kommandoer om og om igjen, til en viss betingelse er oppfylt. La oss se noen av løkkene.
Mens loop
Den begynner å kjøre de angitte kommandoene hvis betingelsen er sann og gjentar dem til betingelsen er usann.
Syntaks
while [ condition ] do #set of statements done>
La oss se et eksempel.
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Mens loop
Vi omslutter en expr-setning i ` ` når vi tilordner den til en variabel. Du kan lese om expr-kommandoen her.
For loop
I en for-løkke itererer variabelen over en liste med verdier og slutter når det ikke er flere verdier å iterere over.
Syntaks
for var in val1 val2 val3 do #statements done>
La oss se et eksempel.
#!/bin/sh for var in 2 4 5 8 do echo $var done>

for løkke
Du kan lese om løkker i detalj her .
Posisjonsargumenter
Posisjonelle argumenter er argumentene eller verdiene som vi sender til shell-skriptet mens vi kjører skriptet. De er tilgjengelige av variablene $0, $1, $2 ... $9. Utover det refereres de til av ${10}, ${11} og så videre. $# lagrer antall beståtte argumenter og $0 lagrer navnet på skriptet. La oss se et eksempel for å forstå alt dette.
#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'>
For å sende argumentene, skriv dem bare inn i terminalen etter skriptnavnet som vist nedenfor.

Posisjonsargumenter
Lagre utdata fra kommandoer
Du kan lagre utdataene til kommandoer i en variabel i et shell-skript. Det er to måter å gjøre det på.
Syntaks
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
La oss se et eksempel.
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Lagre utdata fra kommandoer
Avslutt koder for skallkommandoer
Når en kommando avsluttes og returnerer kontrollen til den overordnede prosessen, returnerer den utgangskoder mellom 0 og 255. Utgangskode 0 betyr at kommandoen var vellykket, og enhver annen utgangskode betyr at kommandoen mislyktes. Du kan se utgangskoden etter å ha kjørt en kommando ved å gå til $? variabel. Se eksempelet nedenfor.

exit-kode for skallkommando
Du kan manuelt angi en utgangskode for skallskriptet ditt. Dette kan brukes med betingede utsagn for å formidle om manusets formål ble oppnådd eller ikke.
Eksempel
#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

exit-kode for skallkommando
, , ... . Utover det refereres de til av , og så videre. $# lagrer antall beståtte argumenter og
Shell er et grensesnitt for operativsystemet. Den aksepterer kommandoer fra brukere og tolker dem til operativsystemet. Hvis du vil kjøre en haug med kommandoer sammen, kan du gjøre det ved å lage et shell-skript. Shell-skript er veldig nyttige hvis du trenger å gjøre en oppgave rutinemessig, som å ta en sikkerhetskopi. Du kan liste disse kommandoene og utføre dem alle med bare ett enkelt skript. La oss se hvordan du kan lage et skallskript og kjøre det på Linux.
Opprette et Shell-skript
Logg på Linux-maskinen din og åpne terminalen, naviger til mappen der du vil lagre skallskriptet. Shell-skript slutter med filtypen .sh. La oss lage vårt første shell-skript. Skriv inn
touch script.sh>
Nå er ikke denne skriptfilen kjørbar som standard, vi må gi den kjørbare tillatelsen til denne filen. Skriv inn
chmod +x script.sh>
Nå vil vi legge til noen kommandoer til dette skallskriptet. Åpne dette skallskriptet med en hvilken som helst tekstredigerer etter eget valg (kommandolinjebasert eller GUI-basert) og legg til noen kommandoer. Vi skal bruke nano. Skriv inn
nano script.sh>
Legg til følgende kommandoer for å teste dette skallskriptet
echo This is my first shell script touch testfile ls echo End of my shell script>
Lagre endringene, og kjør shell-skriptet ved å skrive inn
./script.sh>

Skjermbilde av trinnene ovenfor
Du kan se, den utførte alle de angitte kommandoene.
Kommentarer i shell-skriptet
Enhver linje som starter med # i skallskriptet behandles som en kommentar og ignoreres av skallet under utførelse, bortsett fra shebang-linjen, som vi vil se senere i denne artikkelen. La oss se et eksempel. Et shell-skript lages med følgende innhold.
# This is a comment echo Testing comments in shell script>

Kommentarer i Shell Script
Du kan se, kommentaren blir ignorert.
Variabler i Shell Script
Ja, Shell-skript støtter bruk av variabler, og vi trenger ikke definere en variabels type under deklarasjonen. Det er to typer variabler:
- Systemdefinerte variabler
- Brukerdefinerte variabler.
Systemdefinerte variabler, også kalt miljøvariabler, er vanligvis med store bokstaver. Du kan se alle gjeldende miljøvariabler ved å bruke printenv-kommandoen. Brukerdefinerte variabler angis av brukeren, og de eksisterer bare under kjøring av skript. Du kan definere en variabel ved ganske enkelt å skrive inn navnet og tilordne en verdi med =-tegn og få tilgang til en variabel ved å legge til en $ foran variabelnavnet. Variabler er demonstrert i følgende eksempelskript.
# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Variabler i Shell Script
Definere Shell Script-tolken
Det er mange skjell tilgjengelig i Linux, for eksempel The bourne shell(sh), The Korn Shell(ksh) og GNU Bourne-Again Shell(bash). Skript skrevet for sh-skallet kalles shell-skript, og de kan tolkes av både ksh- og bash-skallene. ksh og Bash er forbedrede versjoner av det originale sh-skallet og de har flere funksjoner enn sh. Bash er generelt standardskallet i de fleste Linux-distribusjoner, og skript skrevet spesielt for bash-skall kalles bash-skript.
Du kan spesifisere hvilket skall skriptet skal bruke, selv om skriptet kjøres fra en annen skallterminal. For å gjøre dette, legg til #! på toppen av skriptfilen, etterfulgt av den absolutte banen til det valgte skallet. For å spesifisere bash som tolk, legg til følgende linje på toppen av shell-skriptet.
#!/bin/bash>
Denne linjen kalles shebang-linjen.
Merk: Dette vil bare fungere hvis bash er installert på systemet ditt.
Sammenligningsoperatører
Du kan sammenligne to variabler i shell-skripting. Vi gjør disse sammenligningene for å ta avgjørelser, vi vil se hvordan du gjør det senere i denne artikkelen, men før det er her en liste over noen sammenligningsoperatører.
Heltallssammenlikning
| Operatør | Beskrivelse |
| -eq | er lik |
| - er | er ikke lik |
| -gt | er større enn |
| -ge | er større enn eller lik |
| -lt | er mindre enn |
| -de | er mindre enn eller lik |
Strengesammenligning
| Operatør | Beskrivelse |
| == | er lik |
| != | er ikke lik |
| < | er mindre enn, i ASCII alfabetisk rekkefølge |
| > | er større enn, i ASCII alfabetisk rekkefølge |
Vi legger til en før fordi de må escapes når de skrives inn i [ ]-konstruksjonen. La oss nå se hvor disse brukes.
Betingede uttalelser
Betingede setninger brukes til å utføre en kodeblokk bare når visse betingelser er oppfylt. Shell-skript støtter bruk av betingede utsagn. Vi bruker sammenligningsoperatører for å sjekke forholdene. La oss se noen betingede uttalelser.
Hvis uttalelse
Den sjekker tilstanden, og hvis den er betinget sann, utfører den kommandoene.
Syntaks
if [ condition ] then #statements fi>
La oss se et eksempel.
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.if-uttalelse
If-else-uttalelse
I en if-else-setning kan du spesifisere et sett med kommandoer som skal kjøres hvis betingelsen ikke er oppfylt.
Syntaks
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
La oss se et eksempel
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

.if-else-uttalelse
Det er andre betingede uttalelser, du kan lese om dem her .
Merk: Skriv inn et mellomrom etter [ og før ] mens du spesifiserer betingelsen som skal sjekkes, ellers får du en feilmelding.
Løkker
Ved å bruke looper kan du et sett med kommandoer om og om igjen, til en viss betingelse er oppfylt. La oss se noen av løkkene.
Mens loop
Den begynner å kjøre de angitte kommandoene hvis betingelsen er sann og gjentar dem til betingelsen er usann.
Syntaks
while [ condition ] do #set of statements done>
La oss se et eksempel.
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Mens loop
Vi omslutter en expr-setning i ` ` når vi tilordner den til en variabel. Du kan lese om expr-kommandoen her.
For loop
I en for-løkke itererer variabelen over en liste med verdier og slutter når det ikke er flere verdier å iterere over.
Syntaks
for var in val1 val2 val3 do #statements done>
La oss se et eksempel.
#!/bin/sh for var in 2 4 5 8 do echo $var done>

for løkke
Du kan lese om løkker i detalj her .
Posisjonsargumenter
Posisjonelle argumenter er argumentene eller verdiene som vi sender til shell-skriptet mens vi kjører skriptet. De er tilgjengelige av variablene $0, $1, $2 ... $9. Utover det refereres de til av ${10}, ${11} og så videre. $# lagrer antall beståtte argumenter og $0 lagrer navnet på skriptet. La oss se et eksempel for å forstå alt dette.
#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'>
For å sende argumentene, skriv dem bare inn i terminalen etter skriptnavnet som vist nedenfor.

Posisjonsargumenter
Lagre utdata fra kommandoer
Du kan lagre utdataene til kommandoer i en variabel i et shell-skript. Det er to måter å gjøre det på.
Syntaks
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
La oss se et eksempel.
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Lagre utdata fra kommandoer
Avslutt koder for skallkommandoer
Når en kommando avsluttes og returnerer kontrollen til den overordnede prosessen, returnerer den utgangskoder mellom 0 og 255. Utgangskode 0 betyr at kommandoen var vellykket, og enhver annen utgangskode betyr at kommandoen mislyktes. Du kan se utgangskoden etter å ha kjørt en kommando ved å gå til $? variabel. Se eksempelet nedenfor.

exit-kode for skallkommando
Du kan manuelt angi en utgangskode for skallskriptet ditt. Dette kan brukes med betingede utsagn for å formidle om manusets formål ble oppnådd eller ikke.
Eksempel
#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

exit-kode for skallkommando
lagrer navnet på skriptet. La oss se et eksempel for å forstå alt dette.
#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is Shell er et grensesnitt for operativsystemet. Den aksepterer kommandoer fra brukere og tolker dem til operativsystemet. Hvis du vil kjøre en haug med kommandoer sammen, kan du gjøre det ved å lage et shell-skript. Shell-skript er veldig nyttige hvis du trenger å gjøre en oppgave rutinemessig, som å ta en sikkerhetskopi. Du kan liste disse kommandoene og utføre dem alle med bare ett enkelt skript. La oss se hvordan du kan lage et skallskript og kjøre det på Linux.
Opprette et Shell-skript
Logg på Linux-maskinen din og åpne terminalen, naviger til mappen der du vil lagre skallskriptet. Shell-skript slutter med filtypen .sh. La oss lage vårt første shell-skript. Skriv inn
touch script.sh>
Nå er ikke denne skriptfilen kjørbar som standard, vi må gi den kjørbare tillatelsen til denne filen. Skriv inn
chmod +x script.sh>
Nå vil vi legge til noen kommandoer til dette skallskriptet. Åpne dette skallskriptet med en hvilken som helst tekstredigerer etter eget valg (kommandolinjebasert eller GUI-basert) og legg til noen kommandoer. Vi skal bruke nano. Skriv inn
nano script.sh>
Legg til følgende kommandoer for å teste dette skallskriptet
echo This is my first shell script touch testfile ls echo End of my shell script>
Lagre endringene, og kjør shell-skriptet ved å skrive inn
./script.sh>

Skjermbilde av trinnene ovenfor
Du kan se, den utførte alle de angitte kommandoene.
Kommentarer i shell-skriptet
Enhver linje som starter med # i skallskriptet behandles som en kommentar og ignoreres av skallet under utførelse, bortsett fra shebang-linjen, som vi vil se senere i denne artikkelen. La oss se et eksempel. Et shell-skript lages med følgende innhold.
# This is a comment echo Testing comments in shell script>

Kommentarer i Shell Script
Du kan se, kommentaren blir ignorert.
Variabler i Shell Script
Ja, Shell-skript støtter bruk av variabler, og vi trenger ikke definere en variabels type under deklarasjonen. Det er to typer variabler:
- Systemdefinerte variabler
- Brukerdefinerte variabler.
Systemdefinerte variabler, også kalt miljøvariabler, er vanligvis med store bokstaver. Du kan se alle gjeldende miljøvariabler ved å bruke printenv-kommandoen. Brukerdefinerte variabler angis av brukeren, og de eksisterer bare under kjøring av skript. Du kan definere en variabel ved ganske enkelt å skrive inn navnet og tilordne en verdi med =-tegn og få tilgang til en variabel ved å legge til en $ foran variabelnavnet. Variabler er demonstrert i følgende eksempelskript.
# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Variabler i Shell Script
Definere Shell Script-tolken
Det er mange skjell tilgjengelig i Linux, for eksempel The bourne shell(sh), The Korn Shell(ksh) og GNU Bourne-Again Shell(bash). Skript skrevet for sh-skallet kalles shell-skript, og de kan tolkes av både ksh- og bash-skallene. ksh og Bash er forbedrede versjoner av det originale sh-skallet og de har flere funksjoner enn sh. Bash er generelt standardskallet i de fleste Linux-distribusjoner, og skript skrevet spesielt for bash-skall kalles bash-skript.
Du kan spesifisere hvilket skall skriptet skal bruke, selv om skriptet kjøres fra en annen skallterminal. For å gjøre dette, legg til #! på toppen av skriptfilen, etterfulgt av den absolutte banen til det valgte skallet. For å spesifisere bash som tolk, legg til følgende linje på toppen av shell-skriptet.
#!/bin/bash>
Denne linjen kalles shebang-linjen.
Merk: Dette vil bare fungere hvis bash er installert på systemet ditt.
Sammenligningsoperatører
Du kan sammenligne to variabler i shell-skripting. Vi gjør disse sammenligningene for å ta avgjørelser, vi vil se hvordan du gjør det senere i denne artikkelen, men før det er her en liste over noen sammenligningsoperatører.
Heltallssammenlikning
| Operatør | Beskrivelse |
| -eq | er lik |
| - er | er ikke lik |
| -gt | er større enn |
| -ge | er større enn eller lik |
| -lt | er mindre enn |
| -de | er mindre enn eller lik |
Strengesammenligning
| Operatør | Beskrivelse |
| == | er lik |
| != | er ikke lik |
| < | er mindre enn, i ASCII alfabetisk rekkefølge |
| > | er større enn, i ASCII alfabetisk rekkefølge |
Vi legger til en før fordi de må escapes når de skrives inn i [ ]-konstruksjonen. La oss nå se hvor disse brukes.
Betingede uttalelser
Betingede setninger brukes til å utføre en kodeblokk bare når visse betingelser er oppfylt. Shell-skript støtter bruk av betingede utsagn. Vi bruker sammenligningsoperatører for å sjekke forholdene. La oss se noen betingede uttalelser.
Hvis uttalelse
Den sjekker tilstanden, og hvis den er betinget sann, utfører den kommandoene.
Syntaks
if [ condition ] then #statements fi>
La oss se et eksempel.
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.if-uttalelse
If-else-uttalelse
I en if-else-setning kan du spesifisere et sett med kommandoer som skal kjøres hvis betingelsen ikke er oppfylt.
Syntaks
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
La oss se et eksempel
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

.if-else-uttalelse
Det er andre betingede uttalelser, du kan lese om dem her .
Merk: Skriv inn et mellomrom etter [ og før ] mens du spesifiserer betingelsen som skal sjekkes, ellers får du en feilmelding.
Løkker
Ved å bruke looper kan du et sett med kommandoer om og om igjen, til en viss betingelse er oppfylt. La oss se noen av løkkene.
Mens loop
Den begynner å kjøre de angitte kommandoene hvis betingelsen er sann og gjentar dem til betingelsen er usann.
Syntaks
while [ condition ] do #set of statements done>
La oss se et eksempel.
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Mens loop
Vi omslutter en expr-setning i ` ` når vi tilordner den til en variabel. Du kan lese om expr-kommandoen her.
For loop
I en for-løkke itererer variabelen over en liste med verdier og slutter når det ikke er flere verdier å iterere over.
Syntaks
for var in val1 val2 val3 do #statements done>
La oss se et eksempel.
#!/bin/sh for var in 2 4 5 8 do echo $var done>

for løkke
Du kan lese om løkker i detalj her .
Posisjonsargumenter
Posisjonelle argumenter er argumentene eller verdiene som vi sender til shell-skriptet mens vi kjører skriptet. De er tilgjengelige av variablene $0, $1, $2 ... $9. Utover det refereres de til av ${10}, ${11} og så videre. $# lagrer antall beståtte argumenter og $0 lagrer navnet på skriptet. La oss se et eksempel for å forstå alt dette.
#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'>
For å sende argumentene, skriv dem bare inn i terminalen etter skriptnavnet som vist nedenfor.

Posisjonsargumenter
Lagre utdata fra kommandoer
Du kan lagre utdataene til kommandoer i en variabel i et shell-skript. Det er to måter å gjøre det på.
Syntaks
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
La oss se et eksempel.
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Lagre utdata fra kommandoer
Avslutt koder for skallkommandoer
Når en kommando avsluttes og returnerer kontrollen til den overordnede prosessen, returnerer den utgangskoder mellom 0 og 255. Utgangskode 0 betyr at kommandoen var vellykket, og enhver annen utgangskode betyr at kommandoen mislyktes. Du kan se utgangskoden etter å ha kjørt en kommando ved å gå til $? variabel. Se eksempelet nedenfor.

exit-kode for skallkommando
Du kan manuelt angi en utgangskode for skallskriptet ditt. Dette kan brukes med betingede utsagn for å formidle om manusets formål ble oppnådd eller ikke.
Eksempel
#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

exit-kode for skallkommando
' echo 'First argument is ' echo 'Second argument is '>
For å sende argumentene, skriv dem bare inn i terminalen etter skriptnavnet som vist nedenfor.

Posisjonsargumenter
Lagre utdata fra kommandoer
Du kan lagre utdataene til kommandoer i en variabel i et shell-skript. Det er to måter å gjøre det på.
hvordan åpne en json-fil
Syntaks
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
La oss se et eksempel.
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Lagre utdata fra kommandoer
Avslutt koder for skallkommandoer
Når en kommando avsluttes og returnerer kontrollen til den overordnede prosessen, returnerer den utgangskoder mellom 0 og 255. Utgangskode 0 betyr at kommandoen var vellykket, og enhver annen utgangskode betyr at kommandoen mislyktes. Du kan se utgangskoden etter å ha kjørt en kommando ved å gå til $? variabel. Se eksempelet nedenfor.

exit-kode for skallkommando
Du kan manuelt angi en utgangskode for skallskriptet ditt. Dette kan brukes med betingede utsagn for å formidle om manusets formål ble oppnådd eller ikke.
Eksempel
#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

exit-kode for skallkommando