logo

Bash Scripting: Introducció a Bash i Bash Scripting

Bash és un intèrpret de línia d'ordres o Unix Shell i s'utilitza àmpliament al sistema operatiu GNU/Linux. Està escrit per Brian Jhan Fox. S'utilitza com a shell d'inici de sessió per defecte per a la majoria de distribucions de Linux. Els scripts s'utilitzen per automatitzar l'execució de les tasques de manera que els humans no necessiten realitzar-les individualment. Bash scripting és una manera fantàstica d'automatitzar diferents tipus de tasques en un sistema. Els desenvolupadors poden evitar fer tasques repetitives mitjançant scripts bash.

Bash scripting admet variables, declaracions condicionals i bucles igual que els llenguatges de programació. A continuació es mostren algunes de les aplicacions de Bash Scripts:



Taula de contingut

significat de dhl

Aplicacions dels scripts Bash:

  • Manipulació de fitxers
  • Execució de tasques rutinàries com l'operació de còpia de seguretat
  • Automatització

Els avantatges d'utilitzar scripts Bash es mostren a continuació:

Avantatges dels scripts Bash:

  • És senzill.
  • Ajuda a evitar fer tasques repetitives
  • Fàcil d'usar
  • Les tasques que es realitzen amb freqüència es poden automatitzar
  • Una seqüència d'ordres es pot executar com una sola ordre.

Els desavantatges dels scripts Bash es mostren a continuació:



Desavantatges dels scripts Bash:

  • Qualsevol error en escriure pot ser costós.
  • S'ha llançat un procés nou per a gairebé totes les ordres de l'intèrpret d'ordres executades
  • Velocitat d'execució lenta
  • Problemes de compatibilitat entre diferents plataformes

Com escriure scripts Bash?

Per escriure un script Bash seguirem els passos:

  • Primer, crearem un fitxer amb l'extensió .sh.
  • A continuació, anotarem els scripts bash dins d'ell
  • Després d'això, li donarem permís d'execució.

Per crear i escriure un fitxer amb l'extensió .sh podem utilitzar gedit editor de text. L'ordre per a això serà -

gedit scriptname.sh>

La primera línia del nostre fitxer de script serà:



#!/bin/bash>

Això dirà, el sistema ha d'utilitzar Bash per a l'execució. Aleshores podem escriure els nostres propis guions.

Escrivim només un script senzill que imprimirà algunes línies al terminal. El codi serà:

#!/bin/bash echo 'Hello, techcodeview.com'>

Ara desarem el fitxer i li donarem el permís d'execució. Per fer-ho, utilitzeu la següent comanda:

chmod +x scriptname.sh>

A continuació, per executar el següent script, utilitzarem l'ordre següent:

./scriptname.sh>

Aquí teniu la representació pictòrica de l'intèrpret d'ordres del terminal després d'executar les ordres anteriors de la següent manera:

Aquí el nom del fitxer d'script és gfg.sh.

Ara també podem escriure ordres més complicades mitjançant Bash Scripts. Aquí teniu un exemple a continuació en què estem utilitzant una declaració de condició:

Script d'exemple:

#!/bin/bash Age=17 if [ '$Age' -ge 18 ]; then echo 'You can vote' else echo 'You cannot vote' fi>

Sortida:

You cannot vote>

Aquí teniu la representació pictòrica de l'intèrpret d'ordres del terminal després d'executar l'script anterior de la següent manera:

De la manera anterior, podem executar diverses ordres Bash alhora.

Ara analitzem els altres conceptes importants relacionats amb Bash Scripting.

Noms de fitxers i permisos

A l'exemple anterior, hem desat el fitxer amb gfg.sh nom i també va proporcionar permís d'execució utilitzant chmod comandament. Ara, entenem per què ho hem fet.

Mentre escrivim scripts bash hauríem de desar el nostre fitxer amb l'extensió .sh, perquè el sistema Linux pugui executar-lo. Quan creem per primera vegada un fitxer amb l'extensió .sh, no té cap permís d'execució i sense el permís d'execució l'script no funcionarà. Per tant, hauríem de proporcionar-li permís d'execució mitjançant el chmod comandament.

El nom de fitxer d'un script bash pot ser qualsevol cosa, però per convenció, es recomana utilitzar majúscules de serp ( my_bash_script.sh ) o guions ( my-bash-script.sh ) per anomenar un fitxer de script.

Les variables

Podem utilitzar variables en els scripts bash. A continuació es mostra un programa de mostra per entendre l'ús de variables als scripts Bash.

Script d'exemple:

Name='SATYAJIT GHOSH' Age=20 echo 'The name is $Name and Age is $Age'>

Sortida de variables:

The name is SATYAJIT GHOSH and Age is 20>

Així doncs, aquí s'han declarat dues variables Nom i un altre és Edat. Aquestes variables són accessibles mitjançant $Name i $Age. Això vol dir que podem declarar una variable en un script bash utilitzant VariableName=Valor i hi pot accedir mitjançant $VariableName. Aquí teniu la representació pictòrica de l'intèrpret d'ordres del terminal després d'executar l'script anterior de la següent manera:

quins mesos són q1

Hi ha dos tipus de variables presents a Bash Scripting. Convencionalment, si una variable es declara dins d'una funció, generalment és a variable local i si es declara fora llavors és a variable global . En el cas d'un script bash, aquest concepte és una mica diferent, aquí qualsevol variable, tant si està escrita dins d'una funció com fora d'una funció per defecte, és una variable global. Si volem fer una variable local, hem d'utilitzar la paraula clau local.

Nota: La millor pràctica és utilitzar sempre una variable local dins d'una funció per evitar qualsevol confusió innecessària.

A continuació es presenta un exemple del mateix:

Script d'exemple:

convertir la cadena a json en java
#!/bin/bash var1='Apple' #global variable myfun(){ local var2='Banana' #local variable var3='Cherry' #global variable echo 'The name of first fruit is $var1' echo 'The name of second fruit is $var2' } myfun #calling function echo 'The name of first fruit is $var1' #trying to access local variable echo 'The name of second fruit is $var2' echo 'The name of third fruit is $var3'>

Sortida de variables locals i globals:

The name of first fruit is Apple The name of second fruit is Banana The name of first fruit is Apple The name of second fruit is The name of third fruit is Cherry>

Aquí, en aquest exemple anterior, var2 és una variable local, de manera que quan hi accedim des de la funció està bé, però quan estem intentant accedir-hi fora de la funció, ens està donant un resultat buit a la sortida.

D'altra banda, a diferència dels llenguatges de programació, tot i que var3 es defineix dins d'una funció encara actua com a variable global i s'hi pot accedir fora de la funció. A continuació es mostra la representació de l'intèrpret d'ordres del terminal després d'executar l'script:

Entrada i sortida

L'entrada i la sortida són conceptes fonamentals per als scripts de shell. Un script pot prendre una o més entrades i també pot produir zero o moltes sortides. Fins i tot pot produir alguns errors. Entenem-ho amb un exemple:

Script d'exemple:

echo 'Enter filename' read filename if [ -e $filename ] then echo '$filename is exits on the directory' cat $filename else cat>$filename echo 'Fitxer creat' fi>

Sortida d'entrada i sortida:

Primera vegada:

Enter filename geeks.txt Hello Geek File created>

Segona vegada:

Enter filename geeks.txt geeks.txt is exits on the directory Hello Geek>

Per tant, en aquest exemple anterior la primera vegada, l'script no ha pogut trobar cap fitxer amb aquest nom de fitxer i s'executa el bloc else. Va crear el fitxer i va posar algunes dades en aquest fitxer. Quan l'executem una segona vegada amb el mateix nom de fitxer, llavors troba el fitxer. Per tant, el bloc if s'executa i mostra el contingut del fitxer. S'introdueix la lectura del contingut del fitxer i la primera vegada que s'introdueix dades al fitxer es considera que s'envia. Aquí hem utilitzat > per emmagatzemar el contingut en un fitxer. El > La notació s'utilitza per redirigir stdout a un fitxer. D'altra banda, podem utilitzar 2> notació per redirigir stderr i &> per redirigir tant stdout com stderr.

A continuació es mostra la representació pictòrica de l'intèrpret d'ordres del terminal després d'executar el següent script:

Funcions

En programació, una funció és un bloc de codi que realitza algunes tasques i es pot cridar diverses vegades per realitzar tasques. L'exemple més senzill de l'ús de la funció en els scripts de Bash es pot donar com a:

Script d'exemple:

#!/bin/bash #It is a function myFunction () { echo Hello World from techcodeview.com } #function call myFunction>

Sortida de funcions:

Hello World from techcodeview.com>

L'exemple anterior mostra una funció que imprimeix alguna cosa quan es crida.

Per tant, la sintaxi bàsica per escriure funcions dins d'un script Bash serà:

Sintaxi de les funcions:

#for defining function_name(){ commands ..... } function_name # for calling>

A més d'això, també podem tenir funcions amb arguments de pas i amb valors de retorn.

Presa de decisions

En programació, la presa de decisions és un dels conceptes importants. El programador proporciona una o més condicions per a l'execució d'un bloc de codi. Si es compleixen les condicions, aquell bloc de codis només s'executa.

S'utilitzen dos tipus de declaracions de presa de decisions dins dels scripts de shell. Ells són -

poda alfa beta

1. Declaració If-else:

If else declaració és una declaració condicional. Es pot utilitzar per executar dos codis diferents en funció de si la condició donada es compleix o no.

Hi ha un parell de varietats presents a la declaració if-else. Ells són -

  • si-fi
  • si-una altra cosa-fi
  • si-elif-else-fi
  • niu si-else

La sintaxi de la més senzilla serà:

Sintaxi de la declaració If-else:

if [ expression ]; then statements fi>

Script d'exemple:

Name='Satyajit' if [ '$Name' = 'Satyajit' ]; then echo 'His name is Satyajit. It is true.' fi>

Sortida de la declaració if-else:

His name is Satyajit. It is true.>

A l'exemple anterior, durant la comprovació de la condició, el nom coincideix i la condició esdevé certa. Per tant, el bloc de codi present al bloc if s'executa. En cas que el nom no coincideixi, no tindrà una sortida. A continuació es mostra la representació pictòrica de l'intèrpret d'ordres del terminal després d'executar el següent script:

2. declaració de cas-sac:

case-sac funciona bàsicament igual que la declaració switch a la programació. De vegades, si hem de comprovar diverses condicions, es pot complicar l'ús de les declaracions if. En aquests moments podem utilitzar una declaració case-sac. La sintaxi serà -

Sintaxi de la declaració case-sac:

si per rudyard kipling explicació línia per línia
case $var in Pattern 1) Statement 1;; Pattern n) Statement n;; esac>

Script d'exemple:

Name='Satyajit' case '$Name' in #case 1 'Rajib') echo 'Profession : Software Engineer' ;; #case 2 'Vikas') echo 'Profession : Web Developer' ;; #case 3 'Satyajit') echo 'Profession : Technical Content Writer' ;; esac>

Sortida de la declaració case-sac:

Profession : Technical Content Writer>

A l'exemple anterior, la instrucció case-sac va executar la instrucció que forma part del patró coincident aquí el 'Nom'. A continuació es mostra la representació pictòrica de l'intèrpret d'ordres del terminal després d'executar el següent script:

Comparacions numèriques i de cadenes

La comparació de cadenes significa que a l'script de l'intèrpret d'ordres podem prendre decisions fent comparacions també dins de cadenes. Aquí teniu una taula descriptiva amb tots els operadors:

Operador Descripció
== Retorna true si les cadenes són iguals
!= Retorna true si les cadenes no són iguals
-n Retorna true si la cadena a provar no és nul·la
-Amb Retorna true si la cadena a provar és nul·la

Els operadors aritmètics s'utilitzen per comprovar les condicions basades en l'aritmètica. Com menor que, major que, igual a, etc. Aquí hi ha una taula descriptiva amb tots els operadors:

Operador Descripció
-eq Igual
-ge Major que o igual
-gt Més gran que
-el Menys que o igual
-lt Menys que
- és No Igual

A continuació es mostra un exemple senzill del mateix:

Script d'exemple:

if [ 10 -eq 10 ];then echo 'Equal' fi if [ 'Geeks' == 'Geeks' ]; then echo 'same' #output else echo 'not same' fi>

Sortida de cadenes i comparacions numèriques:

Equal same>

En aquest exemple, el primer (-eq) és una comparació numèrica que verifica la igualtat. El segon ( == ) també es comprova la igualtat però en cadenes. A continuació es mostra la representació pictòrica de l'intèrpret de comandaments del terminal després d'executar el següent script:

Aprendrem més sobre aquest concepte en els propers articles.

Conclusió

En aquest article parlem dels scripts de Bash, que tenen un paper vital en l'automatització de tasques dins de l'entorn Linux. Com a intèrpret de línia d'ordres, Bash ofereix senzillesa i facilitat d'ús perquè els desenvolupadors creïn scripts que racionalitzin les operacions rutinàries, manipulin fitxers i executin tasques complexes. Tot i que els scripts Bash poden millorar la productivitat evitant accions repetitives i executant seqüències d'ordres de manera eficient, també inclouen consideracions com ara la gestió de permisos, la gestió de variables i la implementació d'estructures de presa de decisions. En dominar els scripts de Bash, els usuaris poden aprofitar el seu poder per optimitzar el seu flux de treball i millorar les tasques d'administració del sistema a les plataformes Linux.