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