logo

Cum se creează un script Shell în Linux

Shell este o interfață a sistemului de operare. Acceptă comenzi de la utilizatori și le interpretează către sistemul de operare. Dacă doriți să rulați o grămadă de comenzi împreună, puteți face acest lucru creând un script shell. Scripturile Shell sunt foarte utile dacă trebuie să faceți o sarcină în mod obișnuit, cum ar fi să faceți o copie de rezervă. Puteți enumera acele comenzi și le puteți executa pe toate cu un singur script. Să vedem cum puteți crea un script shell și îl puteți rula pe Linux.

Crearea unui script Shell

Conectați-vă la mașina dvs. Linux și deschideți terminalul, navigați la folderul în care doriți să stocați scriptul shell. Scripturile Shell se termină cu extensia .sh. Să creăm primul nostru script shell. Introduceți

touch script.sh>

Acum, acest fișier script nu este executabil în mod implicit, trebuie să acordăm permisiunea executabil acestui fișier. Introduceți



chmod +x script.sh>

Acum, vom adăuga câteva comenzi la acest script shell. Deschideți acest script shell cu orice editor de text la alegere (pe linie de comandă sau bazat pe GUI) și adăugați câteva comenzi. Vom folosi nano. Introduceți

nano script.sh>

Adăugați următoarele comenzi pentru a testa acest script shell

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

Salvați modificările și rulați scriptul shell introducând

./script.sh>

Captură de ecran a pașilor de mai sus

Puteți vedea, a executat toate comenzile specificate.

Comentarii în scriptul shell

Orice linie care începe cu # în scriptul shell este tratată ca un comentariu și este ignorată de shell în timpul execuției, cu excepția liniei shebang, pe care o vom vedea mai târziu în acest articol. Să vedem un exemplu. Un script shell este creat cu următorul conținut.

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

Comentarii în Shell Script

Puteți vedea, comentariul este ignorat.

Variabile în Scriptul Shell

Da, scripturile Shell acceptă utilizarea variabilelor și nu trebuie să definim tipul unei variabile în timpul declarației acesteia. Există două tipuri de variabile:

diferența dintre un leu și un tigru
  • Variabile definite de sistem
  • Variabile definite de utilizator.

Variabilele definite de sistem, numite și variabile de mediu, sunt în general cu majuscule. Puteți vizualiza toate variabilele de mediu curente folosind comanda printenv. Variabilele definite de utilizator sunt setate de utilizator și există numai în timpul execuției scriptului. Puteți defini o variabilă prin simpla introducere a numelui acesteia și alocarea unei valori cu semnul = și accesați o variabilă adăugând un $ înainte de numele variabilei. Variabilele sunt demonstrate în următorul exemplu de script.

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

Variabile în Scriptul Shell

Definirea interpretului Shell Script

Există multe Shell-uri disponibile în Linux, cum ar fi The bourne shell(sh), The Korn Shell(ksh) și GNU Bourne-Again Shell(bash). Scripturile scrise pentru shell-ul sh sunt numite script-uri shell și pot fi interpretate de ambele shell-uri, ksh și bash. ksh și Bash sunt versiuni îmbunătățite ale shell-ului original sh și au mai multe caracteristici decât sh. Bash este, în general, shell-ul implicit în majoritatea distribuțiilor Linux, iar scripturile scrise special pentru shell-ul bash sunt numite scripturi bash.

Puteți specifica ce shell va folosi scriptul, chiar dacă scriptul este executat de la un alt terminal shell. Pentru a face acest lucru, adăugați #! deasupra fișierului script, urmat de calea absolută a shell-ului ales. Pentru a specifica bash ca interpret, adăugați următoarea linie deasupra scriptului shell.

#!/bin/bash>

Această linie se numește linia shebang.

Notă: Acest lucru va funcționa numai dacă bash este instalat pe sistemul dvs.

Operatori de comparație

Puteți compara două variabile în scripting shell. Facem aceste comparații pentru a lua decizii, vom vedea cum să facem asta mai târziu în acest articol, dar înainte de asta, iată o listă cu câțiva operatori de comparație.

Comparație între numere întregi

Operator Descriere
-echivalentul este egal cu
- este nu este egal cu
-gt este mai mare decât
-GE este mai mare sau egal cu
-lt e mai puțin decât
-cel este mai mic sau egal cu

Comparație de șiruri

Operator Descriere
== este egal cu
!= nu este egal cu
< este mai mic decât, în ordinea alfabetică ASCII
> este mai mare decât, în ordinea alfabetică ASCII

Adăugăm un înainte pentru că trebuie să fie escape atunci când sunt introduse în constructul [ ]. Acum, să vedem unde sunt folosite acestea.

Declarații condiționale

Instrucțiunile condiționate sunt folosite pentru a executa un bloc de cod numai atunci când sunt îndeplinite anumite condiții. Scripturile Shell acceptă utilizarea instrucțiunilor condiționate. Folosim operatori de comparație pentru a verifica condițiile. Să vedem câteva declarații condiționate.

Dacă declarația

Verifică condiția, iar dacă este condiționată adevărată, execută comenzile.

Sintaxă

if [ condition ] then #statements fi>

Să vedem un exemplu.

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

.if declaraţie

Declarație dacă-altfel

Într-o instrucțiune if-else, puteți specifica un set de comenzi de rulat dacă condiția nu este îndeplinită.

Sintaxă

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

Să vedem un exemplu

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

.afirmaţie dacă-altfel

matrice de structură în limbajul c

Există și alte declarații condiționate, puteți citi despre ele Aici .

Notă: Introduceți un spațiu după [ și înainte de ] în timp ce specificați condiția care trebuie verificată, altfel veți primi o eroare.

Bucle

Folosind bucle, puteți un set de comenzi din nou și din nou, până când o anumită condiție este îndeplinită. Să vedem câteva dintre bucle.

buclă în timp ce

Începe să ruleze comenzile specificate dacă condiția este adevărată și le repetă până când condiția este falsă.

Sintaxă

while [ condition ] do #set of statements done>

Să vedem un exemplu.

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

buclă în timp ce

Includem o instrucțiune expr în ` ` când o atribuim unei variabile. Puteți citi despre comanda expr aici.

Pentru buclă

Într-o buclă for, variabila iterează peste o listă de valori și se termină atunci când nu mai există valori pe care să itereze.

Sintaxă

for var in val1 val2 val3 do #statements done>

Să vedem un exemplu.

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

pentru buclă

Puteți citi despre bucle în detaliu Aici .

Argumente poziționale

Argumentele poziționale sunt argumentele sau valorile pe care le transmitem scriptului shell în timp ce executăm scriptul. Acestea sunt accesate de variabilele

Shell este o interfață a sistemului de operare. Acceptă comenzi de la utilizatori și le interpretează către sistemul de operare. Dacă doriți să rulați o grămadă de comenzi împreună, puteți face acest lucru creând un script shell. Scripturile Shell sunt foarte utile dacă trebuie să faceți o sarcină în mod obișnuit, cum ar fi să faceți o copie de rezervă. Puteți enumera acele comenzi și le puteți executa pe toate cu un singur script. Să vedem cum puteți crea un script shell și îl puteți rula pe Linux.

Crearea unui script Shell

Conectați-vă la mașina dvs. Linux și deschideți terminalul, navigați la folderul în care doriți să stocați scriptul shell. Scripturile Shell se termină cu extensia .sh. Să creăm primul nostru script shell. Introduceți

touch script.sh>

Acum, acest fișier script nu este executabil în mod implicit, trebuie să acordăm permisiunea executabil acestui fișier. Introduceți

chmod +x script.sh>

Acum, vom adăuga câteva comenzi la acest script shell. Deschideți acest script shell cu orice editor de text la alegere (pe linie de comandă sau bazat pe GUI) și adăugați câteva comenzi. Vom folosi nano. Introduceți

nano script.sh>

Adăugați următoarele comenzi pentru a testa acest script shell

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

Salvați modificările și rulați scriptul shell introducând

./script.sh>

Captură de ecran a pașilor de mai sus

Puteți vedea, a executat toate comenzile specificate.

Comentarii în scriptul shell

Orice linie care începe cu # în scriptul shell este tratată ca un comentariu și este ignorată de shell în timpul execuției, cu excepția liniei shebang, pe care o vom vedea mai târziu în acest articol. Să vedem un exemplu. Un script shell este creat cu următorul conținut.

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

Comentarii în Shell Script

Puteți vedea, comentariul este ignorat.

Variabile în Scriptul Shell

Da, scripturile Shell acceptă utilizarea variabilelor și nu trebuie să definim tipul unei variabile în timpul declarației acesteia. Există două tipuri de variabile:

  • Variabile definite de sistem
  • Variabile definite de utilizator.

Variabilele definite de sistem, numite și variabile de mediu, sunt în general cu majuscule. Puteți vizualiza toate variabilele de mediu curente folosind comanda printenv. Variabilele definite de utilizator sunt setate de utilizator și există numai în timpul execuției scriptului. Puteți defini o variabilă prin simpla introducere a numelui acesteia și alocarea unei valori cu semnul = și accesați o variabilă adăugând un $ înainte de numele variabilei. Variabilele sunt demonstrate în următorul exemplu de script.

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

Variabile în Scriptul Shell

Definirea interpretului Shell Script

Există multe Shell-uri disponibile în Linux, cum ar fi The bourne shell(sh), The Korn Shell(ksh) și GNU Bourne-Again Shell(bash). Scripturile scrise pentru shell-ul sh sunt numite script-uri shell și pot fi interpretate de ambele shell-uri, ksh și bash. ksh și Bash sunt versiuni îmbunătățite ale shell-ului original sh și au mai multe caracteristici decât sh. Bash este, în general, shell-ul implicit în majoritatea distribuțiilor Linux, iar scripturile scrise special pentru shell-ul bash sunt numite scripturi bash.

Puteți specifica ce shell va folosi scriptul, chiar dacă scriptul este executat de la un alt terminal shell. Pentru a face acest lucru, adăugați #! deasupra fișierului script, urmat de calea absolută a shell-ului ales. Pentru a specifica bash ca interpret, adăugați următoarea linie deasupra scriptului shell.

#!/bin/bash>

Această linie se numește linia shebang.

Notă: Acest lucru va funcționa numai dacă bash este instalat pe sistemul dvs.

Operatori de comparație

Puteți compara două variabile în scripting shell. Facem aceste comparații pentru a lua decizii, vom vedea cum să facem asta mai târziu în acest articol, dar înainte de asta, iată o listă cu câțiva operatori de comparație.

Comparație între numere întregi

Operator Descriere
-echivalentul este egal cu
- este nu este egal cu
-gt este mai mare decât
-GE este mai mare sau egal cu
-lt e mai puțin decât
-cel este mai mic sau egal cu

Comparație de șiruri

Operator Descriere
== este egal cu
!= nu este egal cu
< este mai mic decât, în ordinea alfabetică ASCII
> este mai mare decât, în ordinea alfabetică ASCII

Adăugăm un înainte pentru că trebuie să fie escape atunci când sunt introduse în constructul [ ]. Acum, să vedem unde sunt folosite acestea.

Declarații condiționale

Instrucțiunile condiționate sunt folosite pentru a executa un bloc de cod numai atunci când sunt îndeplinite anumite condiții. Scripturile Shell acceptă utilizarea instrucțiunilor condiționate. Folosim operatori de comparație pentru a verifica condițiile. Să vedem câteva declarații condiționate.

Dacă declarația

Verifică condiția, iar dacă este condiționată adevărată, execută comenzile.

Sintaxă

if [ condition ] then #statements fi>

Să vedem un exemplu.

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

.if declaraţie

Declarație dacă-altfel

Într-o instrucțiune if-else, puteți specifica un set de comenzi de rulat dacă condiția nu este îndeplinită.

Sintaxă

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

Să vedem un exemplu

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

.afirmaţie dacă-altfel

Există și alte declarații condiționate, puteți citi despre ele Aici .

Notă: Introduceți un spațiu după [ și înainte de ] în timp ce specificați condiția care trebuie verificată, altfel veți primi o eroare.

Bucle

Folosind bucle, puteți un set de comenzi din nou și din nou, până când o anumită condiție este îndeplinită. Să vedem câteva dintre bucle.

buclă în timp ce

Începe să ruleze comenzile specificate dacă condiția este adevărată și le repetă până când condiția este falsă.

Sintaxă

while [ condition ] do #set of statements done>

Să vedem un exemplu.

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

buclă în timp ce

Includem o instrucțiune expr în ` ` când o atribuim unei variabile. Puteți citi despre comanda expr aici.

Pentru buclă

Într-o buclă for, variabila iterează peste o listă de valori și se termină atunci când nu mai există valori pe care să itereze.

Sintaxă

for var in val1 val2 val3 do #statements done>

Să vedem un exemplu.

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

pentru buclă

Puteți citi despre bucle în detaliu Aici .

Argumente poziționale

Argumentele poziționale sunt argumentele sau valorile pe care le transmitem scriptului shell în timp ce executăm scriptul. Acestea sunt accesate de variabilele $0, $1, $2 … $9. În plus, ele sunt menționate de ${10}, ${11} și așa mai departe. $# stochează numărul de argumente transmise și $0 stochează numele scriptului. Să vedem un exemplu pentru a înțelege toate acestea.

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

Pentru a transmite argumentele, introduceți-le în terminal după numele scriptului, așa cum se arată mai jos.

Argumente poziționale

Stocarea rezultatelor comenzilor

Puteți stoca rezultatul comenzilor în interiorul unei variabile într-un script shell. Există două moduri de a face acest lucru.

Sintaxă

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

Să vedem un exemplu.

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

Stocarea rezultatelor comenzilor

Codurile de ieșire ale comenzilor shell

Ori de câte ori o comandă se termină și returnează controlul către procesul părinte, returnează coduri de ieșire între 0 și 255. Codul de ieșire 0 înseamnă că comanda a avut succes, iar orice alt cod de ieșire înseamnă că comanda nu a avut succes. Puteți vizualiza codul de ieșire după ce rulați orice comandă accesând $? variabil. Vezi exemplul de mai jos.

codul de ieșire al comenzii shell

Puteți seta manual un cod de ieșire pentru scriptul shell. Acesta poate fi folosit cu declarații condiționate pentru a transmite dacă scopul scriptului a fost atins sau nu.

Exemplu

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

codul de ieșire al comenzii shell



, , … . În plus, ele sunt menționate de , și așa mai departe. $# stochează numărul de argumente transmise și

Shell este o interfață a sistemului de operare. Acceptă comenzi de la utilizatori și le interpretează către sistemul de operare. Dacă doriți să rulați o grămadă de comenzi împreună, puteți face acest lucru creând un script shell. Scripturile Shell sunt foarte utile dacă trebuie să faceți o sarcină în mod obișnuit, cum ar fi să faceți o copie de rezervă. Puteți enumera acele comenzi și le puteți executa pe toate cu un singur script. Să vedem cum puteți crea un script shell și îl puteți rula pe Linux.

Crearea unui script Shell

Conectați-vă la mașina dvs. Linux și deschideți terminalul, navigați la folderul în care doriți să stocați scriptul shell. Scripturile Shell se termină cu extensia .sh. Să creăm primul nostru script shell. Introduceți

touch script.sh>

Acum, acest fișier script nu este executabil în mod implicit, trebuie să acordăm permisiunea executabil acestui fișier. Introduceți

chmod +x script.sh>

Acum, vom adăuga câteva comenzi la acest script shell. Deschideți acest script shell cu orice editor de text la alegere (pe linie de comandă sau bazat pe GUI) și adăugați câteva comenzi. Vom folosi nano. Introduceți

nano script.sh>

Adăugați următoarele comenzi pentru a testa acest script shell

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

Salvați modificările și rulați scriptul shell introducând

./script.sh>

Captură de ecran a pașilor de mai sus

Puteți vedea, a executat toate comenzile specificate.

Comentarii în scriptul shell

Orice linie care începe cu # în scriptul shell este tratată ca un comentariu și este ignorată de shell în timpul execuției, cu excepția liniei shebang, pe care o vom vedea mai târziu în acest articol. Să vedem un exemplu. Un script shell este creat cu următorul conținut.

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

Comentarii în Shell Script

Puteți vedea, comentariul este ignorat.

Variabile în Scriptul Shell

Da, scripturile Shell acceptă utilizarea variabilelor și nu trebuie să definim tipul unei variabile în timpul declarației acesteia. Există două tipuri de variabile:

  • Variabile definite de sistem
  • Variabile definite de utilizator.

Variabilele definite de sistem, numite și variabile de mediu, sunt în general cu majuscule. Puteți vizualiza toate variabilele de mediu curente folosind comanda printenv. Variabilele definite de utilizator sunt setate de utilizator și există numai în timpul execuției scriptului. Puteți defini o variabilă prin simpla introducere a numelui acesteia și alocarea unei valori cu semnul = și accesați o variabilă adăugând un $ înainte de numele variabilei. Variabilele sunt demonstrate în următorul exemplu de script.

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

Variabile în Scriptul Shell

Definirea interpretului Shell Script

Există multe Shell-uri disponibile în Linux, cum ar fi The bourne shell(sh), The Korn Shell(ksh) și GNU Bourne-Again Shell(bash). Scripturile scrise pentru shell-ul sh sunt numite script-uri shell și pot fi interpretate de ambele shell-uri, ksh și bash. ksh și Bash sunt versiuni îmbunătățite ale shell-ului original sh și au mai multe caracteristici decât sh. Bash este, în general, shell-ul implicit în majoritatea distribuțiilor Linux, iar scripturile scrise special pentru shell-ul bash sunt numite scripturi bash.

Puteți specifica ce shell va folosi scriptul, chiar dacă scriptul este executat de la un alt terminal shell. Pentru a face acest lucru, adăugați #! deasupra fișierului script, urmat de calea absolută a shell-ului ales. Pentru a specifica bash ca interpret, adăugați următoarea linie deasupra scriptului shell.

#!/bin/bash>

Această linie se numește linia shebang.

Notă: Acest lucru va funcționa numai dacă bash este instalat pe sistemul dvs.

Operatori de comparație

Puteți compara două variabile în scripting shell. Facem aceste comparații pentru a lua decizii, vom vedea cum să facem asta mai târziu în acest articol, dar înainte de asta, iată o listă cu câțiva operatori de comparație.

Comparație între numere întregi

Operator Descriere
-echivalentul este egal cu
- este nu este egal cu
-gt este mai mare decât
-GE este mai mare sau egal cu
-lt e mai puțin decât
-cel este mai mic sau egal cu

Comparație de șiruri

Operator Descriere
== este egal cu
!= nu este egal cu
< este mai mic decât, în ordinea alfabetică ASCII
> este mai mare decât, în ordinea alfabetică ASCII

Adăugăm un înainte pentru că trebuie să fie escape atunci când sunt introduse în constructul [ ]. Acum, să vedem unde sunt folosite acestea.

Declarații condiționale

Instrucțiunile condiționate sunt folosite pentru a executa un bloc de cod numai atunci când sunt îndeplinite anumite condiții. Scripturile Shell acceptă utilizarea instrucțiunilor condiționate. Folosim operatori de comparație pentru a verifica condițiile. Să vedem câteva declarații condiționate.

Dacă declarația

Verifică condiția, iar dacă este condiționată adevărată, execută comenzile.

Sintaxă

if [ condition ] then #statements fi>

Să vedem un exemplu.

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

.if declaraţie

Declarație dacă-altfel

Într-o instrucțiune if-else, puteți specifica un set de comenzi de rulat dacă condiția nu este îndeplinită.

Sintaxă

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

Să vedem un exemplu

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

.afirmaţie dacă-altfel

Există și alte declarații condiționate, puteți citi despre ele Aici .

Notă: Introduceți un spațiu după [ și înainte de ] în timp ce specificați condiția care trebuie verificată, altfel veți primi o eroare.

Bucle

Folosind bucle, puteți un set de comenzi din nou și din nou, până când o anumită condiție este îndeplinită. Să vedem câteva dintre bucle.

buclă în timp ce

Începe să ruleze comenzile specificate dacă condiția este adevărată și le repetă până când condiția este falsă.

Sintaxă

while [ condition ] do #set of statements done>

Să vedem un exemplu.

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

buclă în timp ce

Includem o instrucțiune expr în ` ` când o atribuim unei variabile. Puteți citi despre comanda expr aici.

Pentru buclă

Într-o buclă for, variabila iterează peste o listă de valori și se termină atunci când nu mai există valori pe care să itereze.

Sintaxă

for var in val1 val2 val3 do #statements done>

Să vedem un exemplu.

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

pentru buclă

Puteți citi despre bucle în detaliu Aici .

Argumente poziționale

Argumentele poziționale sunt argumentele sau valorile pe care le transmitem scriptului shell în timp ce executăm scriptul. Acestea sunt accesate de variabilele $0, $1, $2 … $9. În plus, ele sunt menționate de ${10}, ${11} și așa mai departe. $# stochează numărul de argumente transmise și $0 stochează numele scriptului. Să vedem un exemplu pentru a înțelege toate acestea.

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

Pentru a transmite argumentele, introduceți-le în terminal după numele scriptului, așa cum se arată mai jos.

Argumente poziționale

Stocarea rezultatelor comenzilor

Puteți stoca rezultatul comenzilor în interiorul unei variabile într-un script shell. Există două moduri de a face acest lucru.

Sintaxă

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

Să vedem un exemplu.

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

Stocarea rezultatelor comenzilor

Codurile de ieșire ale comenzilor shell

Ori de câte ori o comandă se termină și returnează controlul către procesul părinte, returnează coduri de ieșire între 0 și 255. Codul de ieșire 0 înseamnă că comanda a avut succes, iar orice alt cod de ieșire înseamnă că comanda nu a avut succes. Puteți vizualiza codul de ieșire după ce rulați orice comandă accesând $? variabil. Vezi exemplul de mai jos.

codul de ieșire al comenzii shell

Puteți seta manual un cod de ieșire pentru scriptul shell. Acesta poate fi folosit cu declarații condiționate pentru a transmite dacă scopul scriptului a fost atins sau nu.

Exemplu

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

codul de ieșire al comenzii shell



stochează numele scriptului. Să vedem un exemplu pentru a înțelege toate acestea.

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

Shell este o interfață a sistemului de operare. Acceptă comenzi de la utilizatori și le interpretează către sistemul de operare. Dacă doriți să rulați o grămadă de comenzi împreună, puteți face acest lucru creând un script shell. Scripturile Shell sunt foarte utile dacă trebuie să faceți o sarcină în mod obișnuit, cum ar fi să faceți o copie de rezervă. Puteți enumera acele comenzi și le puteți executa pe toate cu un singur script. Să vedem cum puteți crea un script shell și îl puteți rula pe Linux.

Crearea unui script Shell

Conectați-vă la mașina dvs. Linux și deschideți terminalul, navigați la folderul în care doriți să stocați scriptul shell. Scripturile Shell se termină cu extensia .sh. Să creăm primul nostru script shell. Introduceți

touch script.sh>

Acum, acest fișier script nu este executabil în mod implicit, trebuie să acordăm permisiunea executabil acestui fișier. Introduceți

chmod +x script.sh>

Acum, vom adăuga câteva comenzi la acest script shell. Deschideți acest script shell cu orice editor de text la alegere (pe linie de comandă sau bazat pe GUI) și adăugați câteva comenzi. Vom folosi nano. Introduceți

nano script.sh>

Adăugați următoarele comenzi pentru a testa acest script shell

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

Salvați modificările și rulați scriptul shell introducând

./script.sh>

Captură de ecran a pașilor de mai sus

Puteți vedea, a executat toate comenzile specificate.

Comentarii în scriptul shell

Orice linie care începe cu # în scriptul shell este tratată ca un comentariu și este ignorată de shell în timpul execuției, cu excepția liniei shebang, pe care o vom vedea mai târziu în acest articol. Să vedem un exemplu. Un script shell este creat cu următorul conținut.

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

Comentarii în Shell Script

Puteți vedea, comentariul este ignorat.

Variabile în Scriptul Shell

Da, scripturile Shell acceptă utilizarea variabilelor și nu trebuie să definim tipul unei variabile în timpul declarației acesteia. Există două tipuri de variabile:

  • Variabile definite de sistem
  • Variabile definite de utilizator.

Variabilele definite de sistem, numite și variabile de mediu, sunt în general cu majuscule. Puteți vizualiza toate variabilele de mediu curente folosind comanda printenv. Variabilele definite de utilizator sunt setate de utilizator și există numai în timpul execuției scriptului. Puteți defini o variabilă prin simpla introducere a numelui acesteia și alocarea unei valori cu semnul = și accesați o variabilă adăugând un $ înainte de numele variabilei. Variabilele sunt demonstrate în următorul exemplu de script.

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

Variabile în Scriptul Shell

Definirea interpretului Shell Script

Există multe Shell-uri disponibile în Linux, cum ar fi The bourne shell(sh), The Korn Shell(ksh) și GNU Bourne-Again Shell(bash). Scripturile scrise pentru shell-ul sh sunt numite script-uri shell și pot fi interpretate de ambele shell-uri, ksh și bash. ksh și Bash sunt versiuni îmbunătățite ale shell-ului original sh și au mai multe caracteristici decât sh. Bash este, în general, shell-ul implicit în majoritatea distribuțiilor Linux, iar scripturile scrise special pentru shell-ul bash sunt numite scripturi bash.

Puteți specifica ce shell va folosi scriptul, chiar dacă scriptul este executat de la un alt terminal shell. Pentru a face acest lucru, adăugați #! deasupra fișierului script, urmat de calea absolută a shell-ului ales. Pentru a specifica bash ca interpret, adăugați următoarea linie deasupra scriptului shell.

#!/bin/bash>

Această linie se numește linia shebang.

Notă: Acest lucru va funcționa numai dacă bash este instalat pe sistemul dvs.

Operatori de comparație

Puteți compara două variabile în scripting shell. Facem aceste comparații pentru a lua decizii, vom vedea cum să facem asta mai târziu în acest articol, dar înainte de asta, iată o listă cu câțiva operatori de comparație.

Comparație între numere întregi

Operator Descriere
-echivalentul este egal cu
- este nu este egal cu
-gt este mai mare decât
-GE este mai mare sau egal cu
-lt e mai puțin decât
-cel este mai mic sau egal cu

Comparație de șiruri

Operator Descriere
== este egal cu
!= nu este egal cu
< este mai mic decât, în ordinea alfabetică ASCII
> este mai mare decât, în ordinea alfabetică ASCII

Adăugăm un înainte pentru că trebuie să fie escape atunci când sunt introduse în constructul [ ]. Acum, să vedem unde sunt folosite acestea.

Declarații condiționale

Instrucțiunile condiționate sunt folosite pentru a executa un bloc de cod numai atunci când sunt îndeplinite anumite condiții. Scripturile Shell acceptă utilizarea instrucțiunilor condiționate. Folosim operatori de comparație pentru a verifica condițiile. Să vedem câteva declarații condiționate.

Dacă declarația

Verifică condiția, iar dacă este condiționată adevărată, execută comenzile.

Sintaxă

if [ condition ] then #statements fi>

Să vedem un exemplu.

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

.if declaraţie

Declarație dacă-altfel

Într-o instrucțiune if-else, puteți specifica un set de comenzi de rulat dacă condiția nu este îndeplinită.

Sintaxă

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

Să vedem un exemplu

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

.afirmaţie dacă-altfel

Există și alte declarații condiționate, puteți citi despre ele Aici .

Notă: Introduceți un spațiu după [ și înainte de ] în timp ce specificați condiția care trebuie verificată, altfel veți primi o eroare.

Bucle

Folosind bucle, puteți un set de comenzi din nou și din nou, până când o anumită condiție este îndeplinită. Să vedem câteva dintre bucle.

buclă în timp ce

Începe să ruleze comenzile specificate dacă condiția este adevărată și le repetă până când condiția este falsă.

Sintaxă

while [ condition ] do #set of statements done>

Să vedem un exemplu.

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

buclă în timp ce

Includem o instrucțiune expr în ` ` când o atribuim unei variabile. Puteți citi despre comanda expr aici.

Pentru buclă

Într-o buclă for, variabila iterează peste o listă de valori și se termină atunci când nu mai există valori pe care să itereze.

Sintaxă

for var in val1 val2 val3 do #statements done>

Să vedem un exemplu.

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

pentru buclă

Puteți citi despre bucle în detaliu Aici .

Argumente poziționale

Argumentele poziționale sunt argumentele sau valorile pe care le transmitem scriptului shell în timp ce executăm scriptul. Acestea sunt accesate de variabilele $0, $1, $2 … $9. În plus, ele sunt menționate de ${10}, ${11} și așa mai departe. $# stochează numărul de argumente transmise și $0 stochează numele scriptului. Să vedem un exemplu pentru a înțelege toate acestea.

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

Pentru a transmite argumentele, introduceți-le în terminal după numele scriptului, așa cum se arată mai jos.

Argumente poziționale

Stocarea rezultatelor comenzilor

Puteți stoca rezultatul comenzilor în interiorul unei variabile într-un script shell. Există două moduri de a face acest lucru.

Sintaxă

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

Să vedem un exemplu.

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

Stocarea rezultatelor comenzilor

Codurile de ieșire ale comenzilor shell

Ori de câte ori o comandă se termină și returnează controlul către procesul părinte, returnează coduri de ieșire între 0 și 255. Codul de ieșire 0 înseamnă că comanda a avut succes, iar orice alt cod de ieșire înseamnă că comanda nu a avut succes. Puteți vizualiza codul de ieșire după ce rulați orice comandă accesând $? variabil. Vezi exemplul de mai jos.

codul de ieșire al comenzii shell

Puteți seta manual un cod de ieșire pentru scriptul shell. Acesta poate fi folosit cu declarații condiționate pentru a transmite dacă scopul scriptului a fost atins sau nu.

Exemplu

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

codul de ieșire al comenzii shell



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

Pentru a transmite argumentele, introduceți-le în terminal după numele scriptului, așa cum se arată mai jos.

Argumente poziționale

Stocarea rezultatelor comenzilor

Puteți stoca rezultatul comenzilor în interiorul unei variabile într-un script shell. Există două moduri de a face acest lucru.

Sintaxă

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

Să vedem un exemplu.

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

Stocarea rezultatelor comenzilor

Codurile de ieșire ale comenzilor shell

Ori de câte ori o comandă se termină și returnează controlul către procesul părinte, returnează coduri de ieșire între 0 și 255. Codul de ieșire 0 înseamnă că comanda a avut succes, iar orice alt cod de ieșire înseamnă că comanda nu a avut succes. Puteți vizualiza codul de ieșire după ce rulați orice comandă accesând $? variabil. Vezi exemplul de mai jos.

codul de ieșire al comenzii shell

Puteți seta manual un cod de ieșire pentru scriptul shell. Acesta poate fi folosit cu declarații condiționate pentru a transmite dacă scopul scriptului a fost atins sau nu.

Exemplu

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

codul de ieșire al comenzii shell