Shell és una interfície del sistema operatiu. Accepta ordres dels usuaris i les interpreta al sistema operatiu. Si voleu executar un munt d'ordres juntes, podeu fer-ho creant un script de shell. Els scripts de Shell són molt útils si necessiteu fer una tasca de manera rutinària, com ara fer una còpia de seguretat. Podeu llistar aquestes ordres i executar-les totes amb un sol script. Vegem com podeu crear un script de shell i executar-lo a Linux.
Creació d'un script de Shell
Inicieu sessió a la vostra màquina Linux i obriu el terminal, navegueu a la carpeta on voleu emmagatzemar l'script de l'intèrpret d'ordres. Els scripts de Shell acaben amb l'extensió .sh. Creem el nostre primer script de shell. Escriure
touch script.sh>
Ara, aquest fitxer d'script no és executable per defecte, hem de donar el permís executable a aquest fitxer. Escriure
chmod +x script.sh>
Ara, afegirem algunes ordres a aquest script de shell. Obriu aquest script d'intèrpret d'ordres amb qualsevol editor de text que vulgueu (basat en línia d'ordres o basat en GUI) i afegiu algunes ordres. Farem servir nano. Escriure
nano script.sh>
Afegiu les ordres següents per provar aquest script de shell
echo This is my first shell script touch testfile ls echo End of my shell script>
Deseu els canvis i executeu l'script de shell escrivint
./script.sh>

Captura de pantalla dels passos anteriors
Podeu veure que va executar totes les ordres especificades.
Comentaris a l'script del shell
Qualsevol línia que comenci amb # a l'script de l'intèrpret d'ordres es tracta com un comentari i l'intèrpret d'ordres ignora durant l'execució, excepte la línia shebang, que veurem més endavant en aquest article. Vegem un exemple. Es crea un script de shell amb el contingut següent.
# This is a comment echo Testing comments in shell script>

Comentaris en Shell Script
java end for bucle
Podeu veure que el comentari s'ignora.
Variables en Shell Script
Sí, els scripts de Shell admeten l'ús de variables i no hem de definir el tipus de variable durant la seva declaració. Hi ha dos tipus de variables:
- Variables definides pel sistema
- Variables definides per l'usuari.
Les variables definides pel sistema, també anomenades variables d'entorn, generalment es posen en majúscula. Podeu veure totes les variables d'entorn actuals mitjançant l'ordre printenv. Les variables definides per l'usuari les defineix l'usuari i només existeixen durant l'execució de l'script. Podeu definir una variable simplement escrivint el seu nom i assignant un valor amb el signe = i accedir a una variable afegint un $ abans del nom de la variable. Les variables es mostren a l'script d'exemple següent.
nat vs llit
# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Variables en Shell Script
Definició de l'intèrpret de Shell Script
Hi ha moltes shells disponibles a Linux, com ara The bourne shell(sh), The Korn Shell(ksh) i GNU Bourne-Again Shell(bash). Els scripts escrits per a l'intèrpret d'ordres sh s'anomenen scripts d'intèrpret d'ordres, i es poden interpretar ambdós, ksh i bash. ksh i Bash són versions millorades de l'intèrpret d'ordres sh original i tenen més funcions que sh. Bash és generalment l'intèrpret d'ordres predeterminat a la majoria de distribucions de Linux i els scripts escrits específicament per a l'intèrpret d'ordres bash s'anomenen scripts bash.
Podeu especificar quin intèrpret d'ordres utilitzarà l'script, fins i tot si s'executa des d'un altre terminal d'intèrpret d'ordres. Per fer-ho, afegeix #! a la part superior del fitxer d'script, seguit del camí absolut de l'intèrpret d'ordres escollit. Per especificar bash com a intèrpret, afegiu la línia següent a la part superior de l'script de shell.
#!/bin/bash>
Aquesta línia s'anomena línia shebang.
Nota: Això només funcionarà si bash està instal·lat al vostre sistema.
Operadors de comparació
Podeu comparar dues variables en shell scripting. Fem aquestes comparacions per prendre decisions, veurem com fer-ho més endavant en aquest article, però abans d'això, aquí teniu una llista d'alguns operadors de comparació.
Comparació de nombres enters
| Operador | Descripció |
|---|---|
| -eq | és igual a |
| - és | no és igual a |
| -gt | és més gran que |
| -ge | és superior o igual a |
| -lt | és menys que |
| -el | és menor o igual a |
Comparació de cadenes
| Operador | Descripció |
|---|---|
| == | és igual a |
| != | no és igual a |
| < | és inferior a, en ordre alfabètic ASCII |
| > | és més gran que, en ordre alfabètic ASCII |
Afegim un abans perquè cal escapar-los quan s'escriuen a la construcció [ ]. Ara, anem a veure on s'utilitzen.
Declaracions condicionals
Les sentències condicionals s'utilitzen per executar un bloc de codi només quan es compleixen determinades condicions. Els scripts de Shell admeten l'ús de declaracions condicionals. Utilitzem operadors de comparació per comprovar les condicions. Vegem unes quantes declaracions condicionals.
programa d'encapsulació
Si declaració
Comprova la condició i, si està condicionada com a cert, executa les ordres.
Sintaxi
if [ condition ] then #statements fi>
Vegem un exemple.
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.if declaració
Declaració de si més
En una instrucció if-else, podeu especificar un conjunt d'ordres per executar si no es compleix la condició.
Sintaxi
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
Vegem un exemple
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

declaració .if-else
Hi ha altres enunciats condicionals, podeu llegir-ne aquí .
Nota: Escriviu un espai després de [ i abans ] mentre especifiqueu la condició que cal comprovar, en cas contrari obtindreu un error.
Bucles
Utilitzant bucles, podeu fer un conjunt d'ordres una i altra vegada, fins que es compleixi una determinada condició. Vegem alguns dels bucles.
Bucle mentre
Comença a executar les ordres especificades si la condició és certa i les repeteix fins que la condició sigui falsa.
Sintaxi
while [ condition ] do #set of statements done>
Vegem un exemple.
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Bucle mentre
Tanquem una instrucció expr dins de ` ` quan l'assignem a una variable. Podeu llegir sobre l'ordre expr aquí.
Per bucle
En un bucle for, la variable itera sobre una llista de valors i acaba quan no hi ha més valors per iterar.
jocs de missatges per a Android
Sintaxi
for var in val1 val2 val3 do #statements done>
Vegem un exemple.
#!/bin/sh for var in 2 4 5 8 do echo $var done>

per bucle
Podeu llegir sobre els bucles en detall aquí .
Arguments posicionals
Els arguments posicionals són els arguments o valors que passem a l'script de l'intèrpret d'ordres mentre executem l'script. S'hi accedeix mitjançant les variables Shell és una interfície del sistema operatiu. Accepta ordres dels usuaris i les interpreta al sistema operatiu. Si voleu executar un munt d'ordres juntes, podeu fer-ho creant un script de shell. Els scripts de Shell són molt útils si necessiteu fer una tasca de manera rutinària, com ara fer una còpia de seguretat. Podeu llistar aquestes ordres i executar-les totes amb un sol script. Vegem com podeu crear un script de shell i executar-lo a Linux. Inicieu sessió a la vostra màquina Linux i obriu el terminal, navegueu a la carpeta on voleu emmagatzemar l'script de l'intèrpret d'ordres. Els scripts de Shell acaben amb l'extensió .sh. Creem el nostre primer script de shell. Escriure Ara, aquest fitxer d'script no és executable per defecte, hem de donar el permís executable a aquest fitxer. Escriure Ara, afegirem algunes ordres a aquest script de shell. Obriu aquest script d'intèrpret d'ordres amb qualsevol editor de text que vulgueu (basat en línia d'ordres o basat en GUI) i afegiu algunes ordres. Farem servir nano. Escriure Afegiu les ordres següents per provar aquest script de shell Deseu els canvis i executeu l'script de shell escrivint Captura de pantalla dels passos anteriors Podeu veure que va executar totes les ordres especificades. Qualsevol línia que comenci amb # a l'script de l'intèrpret d'ordres es tracta com un comentari i l'intèrpret d'ordres ignora durant l'execució, excepte la línia shebang, que veurem més endavant en aquest article. Vegem un exemple. Es crea un script de shell amb el contingut següent. Comentaris en Shell Script Podeu veure que el comentari s'ignora. Sí, els scripts de Shell admeten l'ús de variables i no hem de definir el tipus de variable durant la seva declaració. Hi ha dos tipus de variables: Les variables definides pel sistema, també anomenades variables d'entorn, generalment es posen en majúscula. Podeu veure totes les variables d'entorn actuals mitjançant l'ordre printenv. Les variables definides per l'usuari les defineix l'usuari i només existeixen durant l'execució de l'script. Podeu definir una variable simplement escrivint el seu nom i assignant un valor amb el signe = i accedir a una variable afegint un $ abans del nom de la variable. Les variables es mostren a l'script d'exemple següent. Variables en Shell Script Hi ha moltes shells disponibles a Linux, com ara The bourne shell(sh), The Korn Shell(ksh) i GNU Bourne-Again Shell(bash). Els scripts escrits per a l'intèrpret d'ordres sh s'anomenen scripts d'intèrpret d'ordres, i es poden interpretar ambdós, ksh i bash. ksh i Bash són versions millorades de l'intèrpret d'ordres sh original i tenen més funcions que sh. Bash és generalment l'intèrpret d'ordres predeterminat a la majoria de distribucions de Linux i els scripts escrits específicament per a l'intèrpret d'ordres bash s'anomenen scripts bash. Podeu especificar quin intèrpret d'ordres utilitzarà l'script, fins i tot si s'executa des d'un altre terminal d'intèrpret d'ordres. Per fer-ho, afegeix #! a la part superior del fitxer d'script, seguit del camí absolut de l'intèrpret d'ordres escollit. Per especificar bash com a intèrpret, afegiu la línia següent a la part superior de l'script de shell. Aquesta línia s'anomena línia shebang. Nota: Això només funcionarà si bash està instal·lat al vostre sistema. Podeu comparar dues variables en shell scripting. Fem aquestes comparacions per prendre decisions, veurem com fer-ho més endavant en aquest article, però abans d'això, aquí teniu una llista d'alguns operadors de comparació. Afegim un abans perquè cal escapar-los quan s'escriuen a la construcció [ ]. Ara, anem a veure on s'utilitzen. Les sentències condicionals s'utilitzen per executar un bloc de codi només quan es compleixen determinades condicions. Els scripts de Shell admeten l'ús de declaracions condicionals. Utilitzem operadors de comparació per comprovar les condicions. Vegem unes quantes declaracions condicionals. Comprova la condició i, si està condicionada com a cert, executa les ordres. Sintaxi Vegem un exemple. .if declaració En una instrucció if-else, podeu especificar un conjunt d'ordres per executar si no es compleix la condició. Sintaxi Vegem un exemple declaració .if-else Hi ha altres enunciats condicionals, podeu llegir-ne aquí . Nota: Escriviu un espai després de [ i abans ] mentre especifiqueu la condició que cal comprovar, en cas contrari obtindreu un error. Utilitzant bucles, podeu fer un conjunt d'ordres una i altra vegada, fins que es compleixi una determinada condició. Vegem alguns dels bucles. Comença a executar les ordres especificades si la condició és certa i les repeteix fins que la condició sigui falsa. Sintaxi Vegem un exemple. Bucle mentre Tanquem una instrucció expr dins de ` ` quan l'assignem a una variable. Podeu llegir sobre l'ordre expr aquí. En un bucle for, la variable itera sobre una llista de valors i acaba quan no hi ha més valors per iterar. Sintaxi Vegem un exemple. per bucle Podeu llegir sobre els bucles en detall aquí . Els arguments posicionals són els arguments o valors que passem a l'script de l'intèrpret d'ordres mentre executem l'script. S'hi accedeix mitjançant les variables $0, $1, $2 ... $9. Més enllà d'això, es fan referència per ${10}, ${11}, etc. $# emmagatzema el nombre d'arguments passats i $0 emmagatzema el nom de l'script. Vegem un exemple per entendre tot això. Per passar els arguments, només cal que escriviu-los al terminal després del nom de l'script, tal com es mostra a continuació. Arguments posicionals Podeu emmagatzemar la sortida de les ordres dins d'una variable en un script de shell. Hi ha dues maneres de fer-ho. Sintaxi Vegem un exemple. Emmagatzemar la sortida de les ordres Sempre que una ordre acaba i torna el control al procés principal, retorna codis de sortida entre 0 i 255. El codi de sortida 0 significa que l'ordre ha tingut èxit, i qualsevol altre codi de sortida significa que l'ordre no ha tingut èxit. Podeu veure el codi de sortida després d'executar qualsevol comanda accedint a $? variable. Vegeu l'exemple següent. codi de sortida de l'ordre de l'intèrpret d'ordres Podeu configurar manualment un codi de sortida per al vostre script de shell. Això es pot utilitzar amb declaracions condicionals per transmetre si el propòsit del guió s'ha aconseguit o no. Exemple codi de sortida de l'ordre de l'intèrpret d'ordres Shell és una interfície del sistema operatiu. Accepta ordres dels usuaris i les interpreta al sistema operatiu. Si voleu executar un munt d'ordres juntes, podeu fer-ho creant un script de shell. Els scripts de Shell són molt útils si necessiteu fer una tasca de manera rutinària, com ara fer una còpia de seguretat. Podeu llistar aquestes ordres i executar-les totes amb un sol script. Vegem com podeu crear un script de shell i executar-lo a Linux. Inicieu sessió a la vostra màquina Linux i obriu el terminal, navegueu a la carpeta on voleu emmagatzemar l'script de l'intèrpret d'ordres. Els scripts de Shell acaben amb l'extensió .sh. Creem el nostre primer script de shell. Escriure Ara, aquest fitxer d'script no és executable per defecte, hem de donar el permís executable a aquest fitxer. Escriure Ara, afegirem algunes ordres a aquest script de shell. Obriu aquest script d'intèrpret d'ordres amb qualsevol editor de text que vulgueu (basat en línia d'ordres o basat en GUI) i afegiu algunes ordres. Farem servir nano. Escriure Afegiu les ordres següents per provar aquest script de shell Deseu els canvis i executeu l'script de shell escrivint Captura de pantalla dels passos anteriors Podeu veure que va executar totes les ordres especificades. Qualsevol línia que comenci amb # a l'script de l'intèrpret d'ordres es tracta com un comentari i l'intèrpret d'ordres ignora durant l'execució, excepte la línia shebang, que veurem més endavant en aquest article. Vegem un exemple. Es crea un script de shell amb el contingut següent. Comentaris en Shell Script Podeu veure que el comentari s'ignora. Sí, els scripts de Shell admeten l'ús de variables i no hem de definir el tipus de variable durant la seva declaració. Hi ha dos tipus de variables: Les variables definides pel sistema, també anomenades variables d'entorn, generalment es posen en majúscula. Podeu veure totes les variables d'entorn actuals mitjançant l'ordre printenv. Les variables definides per l'usuari les defineix l'usuari i només existeixen durant l'execució de l'script. Podeu definir una variable simplement escrivint el seu nom i assignant un valor amb el signe = i accedir a una variable afegint un $ abans del nom de la variable. Les variables es mostren a l'script d'exemple següent. Variables en Shell Script Hi ha moltes shells disponibles a Linux, com ara The bourne shell(sh), The Korn Shell(ksh) i GNU Bourne-Again Shell(bash). Els scripts escrits per a l'intèrpret d'ordres sh s'anomenen scripts d'intèrpret d'ordres, i es poden interpretar ambdós, ksh i bash. ksh i Bash són versions millorades de l'intèrpret d'ordres sh original i tenen més funcions que sh. Bash és generalment l'intèrpret d'ordres predeterminat a la majoria de distribucions de Linux i els scripts escrits específicament per a l'intèrpret d'ordres bash s'anomenen scripts bash. Podeu especificar quin intèrpret d'ordres utilitzarà l'script, fins i tot si s'executa des d'un altre terminal d'intèrpret d'ordres. Per fer-ho, afegeix #! a la part superior del fitxer d'script, seguit del camí absolut de l'intèrpret d'ordres escollit. Per especificar bash com a intèrpret, afegiu la línia següent a la part superior de l'script de shell. Aquesta línia s'anomena línia shebang. Nota: Això només funcionarà si bash està instal·lat al vostre sistema. Podeu comparar dues variables en shell scripting. Fem aquestes comparacions per prendre decisions, veurem com fer-ho més endavant en aquest article, però abans d'això, aquí teniu una llista d'alguns operadors de comparació. Afegim un abans perquè cal escapar-los quan s'escriuen a la construcció [ ]. Ara, anem a veure on s'utilitzen. Les sentències condicionals s'utilitzen per executar un bloc de codi només quan es compleixen determinades condicions. Els scripts de Shell admeten l'ús de declaracions condicionals. Utilitzem operadors de comparació per comprovar les condicions. Vegem unes quantes declaracions condicionals. Comprova la condició i, si està condicionada com a cert, executa les ordres. Sintaxi Vegem un exemple. .if declaració En una instrucció if-else, podeu especificar un conjunt d'ordres per executar si no es compleix la condició. Sintaxi Vegem un exemple declaració .if-else Hi ha altres enunciats condicionals, podeu llegir-ne aquí . Nota: Escriviu un espai després de [ i abans ] mentre especifiqueu la condició que cal comprovar, en cas contrari obtindreu un error. Utilitzant bucles, podeu fer un conjunt d'ordres una i altra vegada, fins que es compleixi una determinada condició. Vegem alguns dels bucles. Comença a executar les ordres especificades si la condició és certa i les repeteix fins que la condició sigui falsa. Sintaxi Vegem un exemple. Bucle mentre Tanquem una instrucció expr dins de ` ` quan l'assignem a una variable. Podeu llegir sobre l'ordre expr aquí. En un bucle for, la variable itera sobre una llista de valors i acaba quan no hi ha més valors per iterar. Sintaxi Vegem un exemple. per bucle Podeu llegir sobre els bucles en detall aquí . Els arguments posicionals són els arguments o valors que passem a l'script de l'intèrpret d'ordres mentre executem l'script. S'hi accedeix mitjançant les variables $0, $1, $2 ... $9. Més enllà d'això, es fan referència per ${10}, ${11}, etc. $# emmagatzema el nombre d'arguments passats i $0 emmagatzema el nom de l'script. Vegem un exemple per entendre tot això. Per passar els arguments, només cal que escriviu-los al terminal després del nom de l'script, tal com es mostra a continuació. Arguments posicionals Podeu emmagatzemar la sortida de les ordres dins d'una variable en un script de shell. Hi ha dues maneres de fer-ho. Sintaxi Vegem un exemple. Emmagatzemar la sortida de les ordres Sempre que una ordre acaba i torna el control al procés principal, retorna codis de sortida entre 0 i 255. El codi de sortida 0 significa que l'ordre ha tingut èxit, i qualsevol altre codi de sortida significa que l'ordre no ha tingut èxit. Podeu veure el codi de sortida després d'executar qualsevol comanda accedint a $? variable. Vegeu l'exemple següent. codi de sortida de l'ordre de l'intèrpret d'ordres Podeu configurar manualment un codi de sortida per al vostre script de shell. Això es pot utilitzar amb declaracions condicionals per transmetre si el propòsit del guió s'ha aconseguit o no. Exemple codi de sortida de l'ordre de l'intèrpret d'ordresCreació d'un script de Shell
touch script.sh>
chmod +x script.sh>
nano script.sh>
echo This is my first shell script touch testfile ls echo End of my shell script>
./script.sh>

Comentaris a l'script del shell
# This is a comment echo Testing comments in shell script>

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

Definició de l'intèrpret de Shell Script
#!/bin/bash>
Operadors de comparació
Comparació de nombres enters
Operador Descripció -eq és igual a - és no és igual a -gt és més gran que -ge és superior o igual a -lt és menys que -el és menor o igual a Comparació de cadenes
Operador Descripció == és igual a != no és igual a < és inferior a, en ordre alfabètic ASCII > és més gran que, en ordre alfabètic ASCII Declaracions condicionals
Si declaració
if [ condition ] then #statements fi>
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

Declaració de si més
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

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

Per bucle
for var in val1 val2 val3 do #statements done>
#!/bin/sh for var in 2 4 5 8 do echo $var done>

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

Emmagatzemar la sortida de les ordres
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Codis de sortida de les ordres de l'intèrpret d'ordres

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

Creació d'un script de Shell
touch script.sh>
chmod +x script.sh>
nano script.sh>
echo This is my first shell script touch testfile ls echo End of my shell script>
./script.sh>

Comentaris a l'script del shell
# This is a comment echo Testing comments in shell script>

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

Definició de l'intèrpret de Shell Script
#!/bin/bash>
Operadors de comparació
Comparació de nombres enters
Operador Descripció -eq és igual a - és no és igual a -gt és més gran que -ge és superior o igual a -lt és menys que -el és menor o igual a Comparació de cadenes
Operador Descripció == és igual a != no és igual a < és inferior a, en ordre alfabètic ASCII > és més gran que, en ordre alfabètic ASCII Declaracions condicionals
Si declaració
if [ condition ] then #statements fi>
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

Declaració de si més
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

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

Per bucle
for var in val1 val2 val3 do #statements done>
#!/bin/sh for var in 2 4 5 8 do echo $var done>

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

Emmagatzemar la sortida de les ordres
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Codis de sortida de les ordres de l'intèrpret d'ordres

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

rebaixa amb imatges
#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is' echo 'First argument is ' echo 'Second argument is '> Shell és una interfície del sistema operatiu. Accepta ordres dels usuaris i les interpreta al sistema operatiu. Si voleu executar un munt d'ordres juntes, podeu fer-ho creant un script de shell. Els scripts de Shell són molt útils si necessiteu fer una tasca de manera rutinària, com ara fer una còpia de seguretat. Podeu llistar aquestes ordres i executar-les totes amb un sol script. Vegem com podeu crear un script de shell i executar-lo a Linux.
Creació d'un script de Shell
Inicieu sessió a la vostra màquina Linux i obriu el terminal, navegueu a la carpeta on voleu emmagatzemar l'script de l'intèrpret d'ordres. Els scripts de Shell acaben amb l'extensió .sh. Creem el nostre primer script de shell. Escriure
touch script.sh>Ara, aquest fitxer d'script no és executable per defecte, hem de donar el permís executable a aquest fitxer. Escriure
chmod +x script.sh>Ara, afegirem algunes ordres a aquest script de shell. Obriu aquest script d'intèrpret d'ordres amb qualsevol editor de text que vulgueu (basat en línia d'ordres o basat en GUI) i afegiu algunes ordres. Farem servir nano. Escriure
nano script.sh>Afegiu les ordres següents per provar aquest script de shell
echo This is my first shell script touch testfile ls echo End of my shell script>Deseu els canvis i executeu l'script de shell escrivint
./script.sh>Captura de pantalla dels passos anteriors
Podeu veure que va executar totes les ordres especificades.
Comentaris a l'script del shell
Qualsevol línia que comenci amb # a l'script de l'intèrpret d'ordres es tracta com un comentari i l'intèrpret d'ordres ignora durant l'execució, excepte la línia shebang, que veurem més endavant en aquest article. Vegem un exemple. Es crea un script de shell amb el contingut següent.
# This is a comment echo Testing comments in shell script>Comentaris en Shell Script
Podeu veure que el comentari s'ignora.
Variables en Shell Script
Sí, els scripts de Shell admeten l'ús de variables i no hem de definir el tipus de variable durant la seva declaració. Hi ha dos tipus de variables:
- Variables definides pel sistema
- Variables definides per l'usuari.
Les variables definides pel sistema, també anomenades variables d'entorn, generalment es posen en majúscula. Podeu veure totes les variables d'entorn actuals mitjançant l'ordre printenv. Les variables definides per l'usuari les defineix l'usuari i només existeixen durant l'execució de l'script. Podeu definir una variable simplement escrivint el seu nom i assignant un valor amb el signe = i accedir a una variable afegint un $ abans del nom de la variable. Les variables es mostren a l'script d'exemple següent.
# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>Variables en Shell Script
Definició de l'intèrpret de Shell Script
Hi ha moltes shells disponibles a Linux, com ara The bourne shell(sh), The Korn Shell(ksh) i GNU Bourne-Again Shell(bash). Els scripts escrits per a l'intèrpret d'ordres sh s'anomenen scripts d'intèrpret d'ordres, i es poden interpretar ambdós, ksh i bash. ksh i Bash són versions millorades de l'intèrpret d'ordres sh original i tenen més funcions que sh. Bash és generalment l'intèrpret d'ordres predeterminat a la majoria de distribucions de Linux i els scripts escrits específicament per a l'intèrpret d'ordres bash s'anomenen scripts bash.
Podeu especificar quin intèrpret d'ordres utilitzarà l'script, fins i tot si s'executa des d'un altre terminal d'intèrpret d'ordres. Per fer-ho, afegeix #! a la part superior del fitxer d'script, seguit del camí absolut de l'intèrpret d'ordres escollit. Per especificar bash com a intèrpret, afegiu la línia següent a la part superior de l'script de shell.
#!/bin/bash>Aquesta línia s'anomena línia shebang.
Nota: Això només funcionarà si bash està instal·lat al vostre sistema.
Operadors de comparació
Podeu comparar dues variables en shell scripting. Fem aquestes comparacions per prendre decisions, veurem com fer-ho més endavant en aquest article, però abans d'això, aquí teniu una llista d'alguns operadors de comparació.
Comparació de nombres enters
Operador Descripció -eq és igual a - és no és igual a -gt és més gran que -ge és superior o igual a -lt és menys que -el és menor o igual a Comparació de cadenes
Operador Descripció == és igual a != no és igual a < és inferior a, en ordre alfabètic ASCII > és més gran que, en ordre alfabètic ASCII Afegim un abans perquè cal escapar-los quan s'escriuen a la construcció [ ]. Ara, anem a veure on s'utilitzen.
Declaracions condicionals
Les sentències condicionals s'utilitzen per executar un bloc de codi només quan es compleixen determinades condicions. Els scripts de Shell admeten l'ús de declaracions condicionals. Utilitzem operadors de comparació per comprovar les condicions. Vegem unes quantes declaracions condicionals.
Si declaració
Comprova la condició i, si està condicionada com a cert, executa les ordres.
Sintaxi
if [ condition ] then #statements fi>Vegem un exemple.
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>.if declaració
Declaració de si més
En una instrucció if-else, podeu especificar un conjunt d'ordres per executar si no es compleix la condició.
Sintaxi
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>Vegem un exemple
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>declaració .if-else
Hi ha altres enunciats condicionals, podeu llegir-ne aquí .
Nota: Escriviu un espai després de [ i abans ] mentre especifiqueu la condició que cal comprovar, en cas contrari obtindreu un error.
Bucles
Utilitzant bucles, podeu fer un conjunt d'ordres una i altra vegada, fins que es compleixi una determinada condició. Vegem alguns dels bucles.
Bucle mentre
Comença a executar les ordres especificades si la condició és certa i les repeteix fins que la condició sigui falsa.
Sintaxi
while [ condition ] do #set of statements done>Vegem un exemple.
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>Bucle mentre
Tanquem una instrucció expr dins de ` ` quan l'assignem a una variable. Podeu llegir sobre l'ordre expr aquí.
Per bucle
En un bucle for, la variable itera sobre una llista de valors i acaba quan no hi ha més valors per iterar.
Sintaxi
for var in val1 val2 val3 do #statements done>Vegem un exemple.
#!/bin/sh for var in 2 4 5 8 do echo $var done>per bucle
Podeu llegir sobre els bucles en detall aquí .
Arguments posicionals
Els arguments posicionals són els arguments o valors que passem a l'script de l'intèrpret d'ordres mentre executem l'script. S'hi accedeix mitjançant les variables $0, $1, $2 ... $9. Més enllà d'això, es fan referència per ${10}, ${11}, etc. $# emmagatzema el nombre d'arguments passats i $0 emmagatzema el nom de l'script. Vegem un exemple per entendre tot això.
#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'>Per passar els arguments, només cal que escriviu-los al terminal després del nom de l'script, tal com es mostra a continuació.
Arguments posicionals
Emmagatzemar la sortida de les ordres
Podeu emmagatzemar la sortida de les ordres dins d'una variable en un script de shell. Hi ha dues maneres de fer-ho.
Sintaxi
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>Vegem un exemple.
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>Emmagatzemar la sortida de les ordres
Codis de sortida de les ordres de l'intèrpret d'ordres
Sempre que una ordre acaba i torna el control al procés principal, retorna codis de sortida entre 0 i 255. El codi de sortida 0 significa que l'ordre ha tingut èxit, i qualsevol altre codi de sortida significa que l'ordre no ha tingut èxit. Podeu veure el codi de sortida després d'executar qualsevol comanda accedint a $? variable. Vegeu l'exemple següent.
codi de sortida de l'ordre de l'intèrpret d'ordres
Podeu configurar manualment un codi de sortida per al vostre script de shell. Això es pot utilitzar amb declaracions condicionals per transmetre si el propòsit del guió s'ha aconseguit o no.
Exemple
#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>codi de sortida de l'ordre de l'intèrpret d'ordres
Per passar els arguments, només cal que escriviu-los al terminal després del nom de l'script, tal com es mostra a continuació.

Arguments posicionals
Emmagatzemar la sortida de les ordres
Podeu emmagatzemar la sortida de les ordres dins d'una variable en un script de shell. Hi ha dues maneres de fer-ho.
Sintaxi
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
Vegem un exemple.
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Emmagatzemar la sortida de les ordres
Codis de sortida de les ordres de l'intèrpret d'ordres
Sempre que una ordre acaba i torna el control al procés principal, retorna codis de sortida entre 0 i 255. El codi de sortida 0 significa que l'ordre ha tingut èxit, i qualsevol altre codi de sortida significa que l'ordre no ha tingut èxit. Podeu veure el codi de sortida després d'executar qualsevol comanda accedint a $? variable. Vegeu l'exemple següent.

codi de sortida de l'ordre de l'intèrpret d'ordres
Podeu configurar manualment un codi de sortida per al vostre script de shell. Això es pot utilitzar amb declaracions condicionals per transmetre si el propòsit del guió s'ha aconseguit o no.
Exemple
#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

codi de sortida de l'ordre de l'intèrpret d'ordres