logo

Funcions Bash

En aquest tema, hem demostrat els fonaments bàsics de les funcions bash i com funcionen en els scripts de l'intèrpret d'ordres bash.

Les funcions dels scripts de bash són una opció fantàstica per reutilitzar el codi. Una funció Bash es pot definir com un conjunt d'ordres que es poden cridar diverses vegades dins de l'script bash. El propòsit de la funció a bash és ajudar-vos a fer que els vostres scripts siguin més llegibles i evitar escriure el mateix codi una vegada i una altra. També permet als desenvolupadors trencar un codi complicat i llarg en petites parts que es poden trucar sempre que sigui necessari. Les funcions es poden cridar en qualsevol moment i repetidament, cosa que ens permetrà reutilitzar, optimitzar i minimitzar el codi.

A continuació es mostren alguns punts clau sobre les funcions bash:

  • Una funció s'ha de declarar a l'script de l'intèrpret d'ordres abans de poder utilitzar-la.
  • Els arguments es poden passar a les funcions i accedir-hi dins de la funció com a , , etc.
  • Les variables locals es poden assignar dins de la funció, i l'abast d'aquestes variables només serà aquesta funció en particular.
  • Les ordres integrades de l'intèrpret d'ordres Bash es poden anul·lar mitjançant funcions.

Sintaxi

La sintaxi per declarar una funció bash es pot definir en dos formats:

1. El primer mètode comença amb el nom de la funció, seguit de parèntesis. És el mètode més preferit i utilitzat habitualment:

 function_name () { commands } 

La versió d'una sola línia es pot esmentar de la següent manera:

 function_name () { commands; } 

2. El segon mètode comença amb la paraula reservada a la funció, seguida del nom de la funció:

llista de salts
 function function_name { commands } 

La versió d'una sola línia es pot esmentar de la següent manera:

 function function_name { commands; } 

En comparació amb la majoria dels llenguatges de programació, les funcions de Bash són una mica limitades. Entenem el concepte amb l'ajuda d'alguns exemples:

Exemple: Mètode 1

 #!/bin/bash JTP () { echo 'Welcome to Javatpoint.' } JTP 

Sortida

 Welcome to Javatpoint. 

Exemple: Mètode 2

 #!/bin/bash function JTP { echo 'Welcome to Javatpoint.' } JTP 

Sortida

 Welcome to Javatpoint. 

Arguments de pas

Com la majoria dels llenguatges de programació, també podem passar els arguments i processar les dades en funcions bash. Podem inserir les dades a la funció de la mateixa manera que passant arguments de línia d'ordres a un script bash.

tipus de dades seqüeles

Per passar qualsevol nombre d'arguments a la funció bash, hem d'inserir-los just després del nom de la funció. Hem d'aplicar espais entre el nom de la funció i els arguments. També serà una bona opció utilitzar cometes dobles al voltant dels arguments per evitar una interpretació incorrecta dels arguments amb espais.

A continuació es mostren alguns punts clau sobre passar arguments a les funcions bash:

  • S'accedeix als arguments donats com a , , ... $n, corresponents a la posició dels arguments després del nom de la funció.
  • La variable

    En aquest tema, hem demostrat els fonaments bàsics de les funcions bash i com funcionen en els scripts de l'intèrpret d'ordres bash.

    Les funcions dels scripts de bash són una opció fantàstica per reutilitzar el codi. Una funció Bash es pot definir com un conjunt d'ordres que es poden cridar diverses vegades dins de l'script bash. El propòsit de la funció a bash és ajudar-vos a fer que els vostres scripts siguin més llegibles i evitar escriure el mateix codi una vegada i una altra. També permet als desenvolupadors trencar un codi complicat i llarg en petites parts que es poden trucar sempre que sigui necessari. Les funcions es poden cridar en qualsevol moment i repetidament, cosa que ens permetrà reutilitzar, optimitzar i minimitzar el codi.

    A continuació es mostren alguns punts clau sobre les funcions bash:

    • Una funció s'ha de declarar a l'script de l'intèrpret d'ordres abans de poder utilitzar-la.
    • Els arguments es poden passar a les funcions i accedir-hi dins de la funció com a $1, $2, etc.
    • Les variables locals es poden assignar dins de la funció, i l'abast d'aquestes variables només serà aquesta funció en particular.
    • Les ordres integrades de l'intèrpret d'ordres Bash es poden anul·lar mitjançant funcions.

    Sintaxi

    La sintaxi per declarar una funció bash es pot definir en dos formats:

    1. El primer mètode comença amb el nom de la funció, seguit de parèntesis. És el mètode més preferit i utilitzat habitualment:

     function_name () { commands } 

    La versió d'una sola línia es pot esmentar de la següent manera:

     function_name () { commands; } 

    2. El segon mètode comença amb la paraula reservada a la funció, seguida del nom de la funció:

     function function_name { commands } 

    La versió d'una sola línia es pot esmentar de la següent manera:

     function function_name { commands; } 

    En comparació amb la majoria dels llenguatges de programació, les funcions de Bash són una mica limitades. Entenem el concepte amb l'ajuda d'alguns exemples:

    Exemple: Mètode 1

     #!/bin/bash JTP () { echo 'Welcome to Javatpoint.' } JTP 

    Sortida

     Welcome to Javatpoint. 

    Exemple: Mètode 2

     #!/bin/bash function JTP { echo 'Welcome to Javatpoint.' } JTP 

    Sortida

     Welcome to Javatpoint. 

    Arguments de pas

    Com la majoria dels llenguatges de programació, també podem passar els arguments i processar les dades en funcions bash. Podem inserir les dades a la funció de la mateixa manera que passant arguments de línia d'ordres a un script bash.

    Per passar qualsevol nombre d'arguments a la funció bash, hem d'inserir-los just després del nom de la funció. Hem d'aplicar espais entre el nom de la funció i els arguments. També serà una bona opció utilitzar cometes dobles al voltant dels arguments per evitar una interpretació incorrecta dels arguments amb espais.

    A continuació es mostren alguns punts clau sobre passar arguments a les funcions bash:

    • S'accedeix als arguments donats com a $1, $2, $3 ... $n, corresponents a la posició dels arguments després del nom de la funció.
    • La variable $0 es manté reservada per al nom de la funció.
    • La variable $# s'utilitza per contenir el nombre d'arguments/paràmetres posicionals donats a la funció.
    • Les variables $* i $@ s'utilitzen per contenir tots els arguments/paràmetres donats a la funció.
      • Quan $* s'utilitza amb cometes dobles (és a dir, '$*'), s'expandeix a una cadena única separada per l'espai. Per exemple, '$1 $2 $n etc'.
      • Quan $@ s'utilitza amb cometes dobles (és a dir, '$@' ), s'expandeix a la cadena separada. Per exemple, '$1' '$2' '$n', etc.
      • Quan $* i $# no s'utilitzen amb les cometes dobles, tots dos són iguals.

    A continuació es mostra el codi que il·lustra el procediment sobre com passar arguments a les funcions i accedir als arguments dins de la funció.

    Bash Script

     #!/bin/bash #Script to pass and access arguments function_arguments() { echo $1 echo $2 echo $3 echo $4 echo $5 } #Calling function_arguments function_arguments 'We''welcome''you''on''Javatpoint.' 

    Sortida

    Funcions Bash

    En aquest script, hem afegit els valors 'Nosaltres', 'benvingut', 'tu', 'activat' i 'Javatpoint' després d'haver cridat els arguments_funció. Aquests valors es passen a argument_funció com a paràmetres i emmagatzemats en una variable local. Tanmateix, a diferència d'altres idiomes, l'intèrpret emmagatzema els valors passats en variables predefinides, que després s'anomenen segons la seqüència de paràmetres de pas.

    Per exemple,

    'nosaltres' la paraula s'emmagatzema a la variable 1 .
    'Benvingut' la paraula s'emmagatzema a la variable 2 .
    'vostè' la paraula s'emmagatzema a la variable 3 .
    'encès' la paraula s'emmagatzema a la variable 4 .
    'Javatpoint' la paraula s'emmagatzema a la variable 5 .

    Àmbit variable

    Les variables globals es defineixen com les variables a les quals es pot accedir a qualsevol lloc de l'script independentment de l'abast. Per defecte, totes les variables es defineixen com a variables globals, fins i tot si es declaren dins de la funció. També podem crear variables com a variable local. Les variables locals es poden declarar dins del cos de la funció amb el ?local? paraula clau quan s'assignen per primera vegada. Només són accessibles dins d'aquesta funció. Podem crear variables locals amb el mateix nom en diferents funcions. Per afegir una variable local, podem utilitzar la sintaxi següent:

     local var_name= 

    Per entendre millor com funciona l'abast de les variables a Bash Scripting, consulteu l'exemple següent:

    Bash Script

     #!/bin/bash v1='A' v2='B' my_var () { local v1='C' v2='D' echo 'Inside Function' echo 'v1 is $v1.' echo 'v2 is $v2.' } echo 'Before Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' my_var echo 'After Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' 

    Sortida

    Funcions Bash

    Segons la sortida, si establim una variable local dins del cos de la funció amb el mateix nom que una variable global existent, tindrà prioritat sobre la variable global. Les variables globals es poden modificar dins de la funció.

    Valors de retorn

    La majoria dels llenguatges de programació tenen el concepte de retornar un valor per a les funcions. Significa que la funció ha d'enviar les dades de nou a la ubicació de trucada original. A diferència de les funcions dels llenguatges de programació 'reals', la funció Bash no ofereix suport per retornar un valor quan es crida. Tanmateix, ens permeten establir un estat de retorn que és similar a com surt un programa o comanda amb un estat de sortida. Quan es completa una funció bash, el seu valor de retorn és l'estat de l'última instrucció executada a la funció. Retorna 0 per a l'estat d'èxit i un nombre decimal diferent de zero en l'interval 1-255 per a la fallada.

    L'estat de retorn es pot indicar mitjançant la paraula clau 'retorn' i s'assigna a la variable $?. La instrucció de retorn finalitza la funció i funciona com a estat de sortida de la funció.

    Per exemple, considereu el codi següent:

    Bash Script

     #!/bin/bash #Setting up a return status for a function print_it () { echo Hello $1 return 5 } print_it User print_it Reader echo The previous function returned a value of $? 

    Sortida

    Funcions Bash

    Una altra opció millor per retornar un valor d'una funció és enviar el valor a stdout utilitzant eco o imprimirf ordres, com es mostra a continuació:

    Bash Script

     #!/bin/bash print_it () { local my_greet='Welcome to Javatpoint.' echo '$my_greet' } my_greet='$(print_it)' echo $my_greet 

    Sortida

     Welcome to Javatpoint. 

    Comandes anul·lades

    Tenim una opció per anul·lar les ordres bash mitjançant la creació d'una funció amb el mateix nom que l'ordre que anem a substituir. Per exemple, si volem anul·lar l'ordre 'eco', haurem de crear una funció amb el nom 'eco'.

    Aquest concepte d'anul·lar les ordres bash pot ser útil en alguns escenaris com quan volem utilitzar una ordre amb opcions específiques. A més, quan no ens agrada oferir opcions a tota l'ordre diverses vegades dins de l'script. En aquests casos, podem substituir l'ordre bash incorporat per a l'ordre amb opcions. Ara, anem a entendre el concepte d'anul·lar les ordres a Bash Shell Scripting amb l'ajuda d'alguns exemples:

    Exemple

    En aquest exemple, hem anul·lat l'ordre 'eco' i hem afegit la marca de temps en forma d'argument a l'ordre 'eco'.

    Bash Script

     #!/bin/bash #Script to override command using function echo () { builtin echo -n `date +'[%m-%d %H:%M:%S]'` ': ' builtin echo $1 } echo 'Welcome to Javatpoint.' 

    Sortida

    Funcions Bash

    Conclusió

    En aquest tema, hem demostrat la funció Bash. Una funció Bash es considera com un bloc de codi reutilitzable desenvolupat per realitzar una operació específica. Un cop definit, es pot cridar diverses vegades dins d'un script.


    es manté reservada per al nom de la funció.
  • La variable $# s'utilitza per contenir el nombre d'arguments/paràmetres posicionals donats a la funció.
  • Les variables $* i $@ s'utilitzen per contenir tots els arguments/paràmetres donats a la funció.
    • Quan $* s'utilitza amb cometes dobles (és a dir, '$*'), s'expandeix a una cadena única separada per l'espai. Per exemple, ' $n etc'.
    • Quan $@ s'utilitza amb cometes dobles (és a dir, '$@' ), s'expandeix a la cadena separada. Per exemple, '' '' '$n', etc.
    • Quan $* i $# no s'utilitzen amb les cometes dobles, tots dos són iguals.

A continuació es mostra el codi que il·lustra el procediment sobre com passar arguments a les funcions i accedir als arguments dins de la funció.

Bash Script

 #!/bin/bash #Script to pass and access arguments function_arguments() { echo  echo  echo  echo  echo  } #Calling function_arguments function_arguments 'We''welcome''you''on''Javatpoint.' 

Sortida

Funcions Bash

En aquest script, hem afegit els valors 'Nosaltres', 'benvingut', 'tu', 'activat' i 'Javatpoint' després d'haver cridat els arguments_funció. Aquests valors es passen a argument_funció com a paràmetres i emmagatzemats en una variable local. Tanmateix, a diferència d'altres idiomes, l'intèrpret emmagatzema els valors passats en variables predefinides, que després s'anomenen segons la seqüència de paràmetres de pas.

Per exemple,

'nosaltres' la paraula s'emmagatzema a la variable 1 .
'Benvingut' la paraula s'emmagatzema a la variable 2 .
'vostè' la paraula s'emmagatzema a la variable 3 .
'encès' la paraula s'emmagatzema a la variable 4 .
'Javatpoint' la paraula s'emmagatzema a la variable 5 .

comanda estirament d'autocad

Àmbit variable

Les variables globals es defineixen com les variables a les quals es pot accedir a qualsevol lloc de l'script independentment de l'abast. Per defecte, totes les variables es defineixen com a variables globals, fins i tot si es declaren dins de la funció. També podem crear variables com a variable local. Les variables locals es poden declarar dins del cos de la funció amb el ?local? paraula clau quan s'assignen per primera vegada. Només són accessibles dins d'aquesta funció. Podem crear variables locals amb el mateix nom en diferents funcions. Per afegir una variable local, podem utilitzar la sintaxi següent:

 local var_name= 

Per entendre millor com funciona l'abast de les variables a Bash Scripting, consulteu l'exemple següent:

Bash Script

 #!/bin/bash v1='A' v2='B' my_var () { local v1='C' v2='D' echo 'Inside Function' echo 'v1 is $v1.' echo 'v2 is $v2.' } echo 'Before Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' my_var echo 'After Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' 

Sortida

Funcions Bash

Segons la sortida, si establim una variable local dins del cos de la funció amb el mateix nom que una variable global existent, tindrà prioritat sobre la variable global. Les variables globals es poden modificar dins de la funció.

Valors de retorn

La majoria dels llenguatges de programació tenen el concepte de retornar un valor per a les funcions. Significa que la funció ha d'enviar les dades de nou a la ubicació de trucada original. A diferència de les funcions dels llenguatges de programació 'reals', la funció Bash no ofereix suport per retornar un valor quan es crida. Tanmateix, ens permeten establir un estat de retorn que és similar a com surt un programa o comanda amb un estat de sortida. Quan es completa una funció bash, el seu valor de retorn és l'estat de l'última instrucció executada a la funció. Retorna 0 per a l'estat d'èxit i un nombre decimal diferent de zero en l'interval 1-255 per a la fallada.

L'estat de retorn es pot indicar mitjançant la paraula clau 'retorn' i s'assigna a la variable $?. La instrucció de retorn finalitza la funció i funciona com a estat de sortida de la funció.

Per exemple, considereu el codi següent:

món Wumpus

Bash Script

 #!/bin/bash #Setting up a return status for a function print_it () { echo Hello  return 5 } print_it User print_it Reader echo The previous function returned a value of $? 

Sortida

Funcions Bash

Una altra opció millor per retornar un valor d'una funció és enviar el valor a stdout utilitzant eco o imprimirf ordres, com es mostra a continuació:

xifra romana de l'1 al 100

Bash Script

 #!/bin/bash print_it () { local my_greet='Welcome to Javatpoint.' echo '$my_greet' } my_greet='$(print_it)' echo $my_greet 

Sortida

 Welcome to Javatpoint. 

Comandes anul·lades

Tenim una opció per anul·lar les ordres bash mitjançant la creació d'una funció amb el mateix nom que l'ordre que anem a substituir. Per exemple, si volem anul·lar l'ordre 'eco', haurem de crear una funció amb el nom 'eco'.

Aquest concepte d'anul·lar les ordres bash pot ser útil en alguns escenaris com quan volem utilitzar una ordre amb opcions específiques. A més, quan no ens agrada oferir opcions a tota l'ordre diverses vegades dins de l'script. En aquests casos, podem substituir l'ordre bash incorporat per a l'ordre amb opcions. Ara, anem a entendre el concepte d'anul·lar les ordres a Bash Shell Scripting amb l'ajuda d'alguns exemples:

Exemple

En aquest exemple, hem anul·lat l'ordre 'eco' i hem afegit la marca de temps en forma d'argument a l'ordre 'eco'.

Bash Script

 #!/bin/bash #Script to override command using function echo () { builtin echo -n `date +'[%m-%d %H:%M:%S]'` ': ' builtin echo  } echo 'Welcome to Javatpoint.' 

Sortida

Funcions Bash

Conclusió

En aquest tema, hem demostrat la funció Bash. Una funció Bash es considera com un bloc de codi reutilitzable desenvolupat per realitzar una operació específica. Un cop definit, es pot cridar diverses vegades dins d'un script.