logo

Funzioni di Bash

In questo argomento abbiamo dimostrato le basi delle funzioni bash e come funzionano nello scripting della shell bash.

Le funzioni negli script bash sono un'ottima opzione per riutilizzare il codice. Una funzione Bash può essere definita come un insieme di comandi che possono essere richiamati più volte all'interno dello script bash. Lo scopo della funzione in bash è aiutarti a rendere i tuoi script più leggibili ed evitare di scrivere lo stesso codice ancora e ancora. Consente inoltre agli sviluppatori di suddividere un codice complicato e lungo in piccole parti che possono essere richiamate quando necessario. Le funzioni possono essere chiamate in qualsiasi momento e ripetutamente, il che ci consentirà di riutilizzare, ottimizzare e ridurre al minimo il codice.

Di seguito sono riportati alcuni punti chiave sulle funzioni bash:

  • Una funzione deve essere dichiarata nello script di shell prima di poterla utilizzare.
  • Gli argomenti possono essere passati alle funzioni e accessibili all'interno della funzione come , , ecc.
  • È possibile assegnare variabili locali all'interno della funzione e l'ambito di tali variabili sarà solo quella particolare funzione.
  • I comandi incorporati della shell Bash possono essere sovrascritti utilizzando le funzioni.

Sintassi

La sintassi per dichiarare una funzione bash può essere definita in due formati:

1. Il primo metodo inizia con il nome della funzione, seguito da parentesi. È il metodo più preferito e comunemente utilizzato:

 function_name () { commands } 

La versione a linea singola può essere menzionata come di seguito:

 function_name () { commands; } 

2. Il secondo metodo inizia con la parola riservata alla funzione, seguita dal nome della funzione:

Java cattura prova
 function function_name { commands } 

La versione a linea singola può essere menzionata come di seguito:

 function function_name { commands; } 

Rispetto alla maggior parte dei linguaggi di programmazione, le funzioni di Bash sono alquanto limitate. Capiamo il concetto con l'aiuto di alcuni esempi:

Esempio: Metodo 1

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

Produzione

 Welcome to Javatpoint. 

Esempio: Metodo 2

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

Produzione

 Welcome to Javatpoint. 

Argomenti di passaggio

Come la maggior parte dei linguaggi di programmazione, possiamo anche passare gli argomenti ed elaborare i dati in funzioni bash. Possiamo inserire i dati nella funzione in modo simile al passaggio degli argomenti della riga di comando a uno script bash.

installazione esperta

Per passare un numero qualsiasi di argomenti alla funzione bash, dobbiamo inserirli subito dopo il nome della funzione. Dobbiamo applicare spazi tra il nome della funzione e gli argomenti. Sarà anche un'ottima scelta utilizzare le virgolette doppie attorno agli argomenti per evitare errori di analisi degli argomenti che contengono spazi.

Di seguito sono riportati alcuni punti chiave sul passaggio di argomenti alle funzioni bash:

  • Si accede agli argomenti forniti come , , ... $n, corrispondente alla posizione degli argomenti dopo il nome della funzione.
  • La variabile

    In questo argomento abbiamo dimostrato le basi delle funzioni bash e come funzionano nello scripting della shell bash.

    Le funzioni negli script bash sono un'ottima opzione per riutilizzare il codice. Una funzione Bash può essere definita come un insieme di comandi che possono essere richiamati più volte all'interno dello script bash. Lo scopo della funzione in bash è aiutarti a rendere i tuoi script più leggibili ed evitare di scrivere lo stesso codice ancora e ancora. Consente inoltre agli sviluppatori di suddividere un codice complicato e lungo in piccole parti che possono essere richiamate quando necessario. Le funzioni possono essere chiamate in qualsiasi momento e ripetutamente, il che ci consentirà di riutilizzare, ottimizzare e ridurre al minimo il codice.

    Di seguito sono riportati alcuni punti chiave sulle funzioni bash:

    • Una funzione deve essere dichiarata nello script di shell prima di poterla utilizzare.
    • Gli argomenti possono essere passati alle funzioni e accessibili all'interno della funzione come $1, $2, ecc.
    • È possibile assegnare variabili locali all'interno della funzione e l'ambito di tali variabili sarà solo quella particolare funzione.
    • I comandi incorporati della shell Bash possono essere sovrascritti utilizzando le funzioni.

    Sintassi

    La sintassi per dichiarare una funzione bash può essere definita in due formati:

    1. Il primo metodo inizia con il nome della funzione, seguito da parentesi. È il metodo più preferito e comunemente utilizzato:

     function_name () { commands } 

    La versione a linea singola può essere menzionata come di seguito:

     function_name () { commands; } 

    2. Il secondo metodo inizia con la parola riservata alla funzione, seguita dal nome della funzione:

     function function_name { commands } 

    La versione a linea singola può essere menzionata come di seguito:

     function function_name { commands; } 

    Rispetto alla maggior parte dei linguaggi di programmazione, le funzioni di Bash sono alquanto limitate. Capiamo il concetto con l'aiuto di alcuni esempi:

    Esempio: Metodo 1

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

    Produzione

     Welcome to Javatpoint. 

    Esempio: Metodo 2

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

    Produzione

     Welcome to Javatpoint. 

    Argomenti di passaggio

    Come la maggior parte dei linguaggi di programmazione, possiamo anche passare gli argomenti ed elaborare i dati in funzioni bash. Possiamo inserire i dati nella funzione in modo simile al passaggio degli argomenti della riga di comando a uno script bash.

    Per passare un numero qualsiasi di argomenti alla funzione bash, dobbiamo inserirli subito dopo il nome della funzione. Dobbiamo applicare spazi tra il nome della funzione e gli argomenti. Sarà anche un'ottima scelta utilizzare le virgolette doppie attorno agli argomenti per evitare errori di analisi degli argomenti che contengono spazi.

    Di seguito sono riportati alcuni punti chiave sul passaggio di argomenti alle funzioni bash:

    • Si accede agli argomenti forniti come $1, $2, $3 ... $n, corrispondente alla posizione degli argomenti dopo il nome della funzione.
    • La variabile $0 viene mantenuta riservata per il nome della funzione.
    • La variabile $# viene utilizzata per contenere il numero di argomenti/parametri posizionali forniti alla funzione.
    • Le variabili $* e $@ vengono utilizzate per contenere tutti gli argomenti/parametri forniti alla funzione.
      • Quando $* viene utilizzato tra virgolette doppie (ad esempio, '$*' ), si espande in una singola stringa separata dallo spazio. Ad esempio, '$1 $2 $n ecc'.
      • Quando $@ viene utilizzato tra virgolette doppie (ad esempio, '$@' ), si espande nella stringa separata. Ad esempio, '$1' '$2' '$n' ecc.
      • Quando $* e $# non vengono utilizzati tra virgolette doppie, sono entrambi uguali.

    Di seguito è riportato il codice che illustra la procedura su come passare argomenti alle funzioni e accedere agli argomenti all'interno della funzione.

    BashScript

     #!/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.' 

    Produzione

    Funzioni di Bash

    In questo script, abbiamo aggiunto i valori 'Noi', 'benvenuto', 'tu', 'on' e 'Javatpoint' dopo aver chiamato function_arguments. Tali valori vengono passati al file argomenti_funzione come parametri e memorizzati in una variabile locale. Tuttavia, a differenza di altri linguaggi, l'interprete memorizza i valori passati in variabili predefinite, che vengono poi denominate in base alla sequenza dei parametri passati.

    Per esempio,

    'Noi' la parola viene memorizzata nella variabile 1 .
    'Benvenuto' la parola viene memorizzata nella variabile 2 .
    'Voi' la parola viene memorizzata nella variabile 3 .
    'SU' la parola viene memorizzata nella variabile 4 .
    'Javatpoint' la parola viene memorizzata nella variabile 5 .

    Ambito variabile

    Le variabili globali sono definite come variabili a cui è possibile accedere ovunque all'interno dello script, indipendentemente dall'ambito. Per impostazione predefinita, tutte le variabili sono definite come variabili globali, anche se sono dichiarate all'interno della funzione. Possiamo anche creare variabili come variabile locale. Le variabili locali possono essere dichiarate all'interno del corpo della funzione con il comando ?local? parola chiave quando vengono assegnate per la prima volta. Sono accessibili solo all'interno di quella funzione. Possiamo creare variabili locali con lo stesso nome in diverse funzioni. Per aggiungere una variabile locale, possiamo usare la seguente sintassi:

     local var_name= 

    Per comprendere meglio come funziona l'ambito delle variabili in Bash Scripting, controlla il seguente esempio:

    BashScript

     #!/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.' 

    Produzione

    Funzioni di Bash

    Come da output, se impostiamo una variabile locale all'interno del corpo della funzione con lo stesso nome di una variabile globale esistente, allora avrà la precedenza sulla variabile globale. Le variabili globali possono essere modificate all'interno della funzione.

    Valori restituiti

    La maggior parte dei linguaggi di programmazione prevede il concetto di restituire un valore per le funzioni. Ciò significa che la funzione deve rispedire i dati alla posizione di chiamata originale. A differenza delle funzioni nei linguaggi di programmazione 'reali', la funzione Bash non fornisce supporto per restituire un valore quando viene chiamata. Tuttavia, ci consentono di impostare uno stato di ritorno simile al modo in cui un programma o un comando esce con uno stato di uscita. Quando una funzione bash viene completata, il suo valore restituito è lo stato dell'ultima istruzione eseguita nella funzione. Restituisce 0 per lo stato di successo e un numero decimale diverso da zero nell'intervallo 1-255 per il fallimento.

    Lo stato di restituzione può essere indicato utilizzando la parola chiave 'return' ed è assegnato alla variabile $?. L'istruzione return termina la funzione e funge da stato di uscita della funzione.

    Per esempio, considerare il seguente codice:

    BashScript

     #!/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 $? 

    Produzione

    Funzioni di Bash

    Un'altra opzione migliore per restituire un valore da una funzione è inviare il valore a stdout utilizzando eco O printf comandi, come mostrato di seguito:

    BashScript

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

    Produzione

     Welcome to Javatpoint. 

    Comandi prioritari

    Abbiamo un'opzione per sovrascrivere i comandi bash creando una funzione con lo stesso nome del comando che sovrascriveremo. Ad esempio, se vogliamo sovrascrivere il comando 'echo', dobbiamo creare una funzione con il nome 'echo'.

    Questo concetto di sovrascrivere i comandi bash può essere utile in alcuni scenari come quando vogliamo utilizzare un comando con opzioni specifiche. Inoltre, quando non ci piace fornire all'intero comando opzioni più volte all'interno dello script. In questi casi, possiamo sovrascrivere il comando bash integrato per comando con opzioni. Ora comprendiamo il concetto di sovrascrittura dei comandi in Bash Shell Scripting con l'aiuto di alcuni esempi:

    Esempio

    In questo esempio, abbiamo sovrascritto il comando 'echo' e aggiunto il timestamp sotto forma di argomento al comando 'echo'.

    BashScript

     #!/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.' 

    Produzione

    Funzioni di Bash

    Conclusione

    In questo argomento, abbiamo dimostrato la funzione Bash. Una funzione Bash è considerata come un blocco di codice riutilizzabile sviluppato per eseguire un'operazione specifica. Una volta definito, può essere richiamato più volte all'interno di uno script.


    viene mantenuta riservata per il nome della funzione.
  • La variabile $# viene utilizzata per contenere il numero di argomenti/parametri posizionali forniti alla funzione.
  • Le variabili $* e $@ vengono utilizzate per contenere tutti gli argomenti/parametri forniti alla funzione.
    • Quando $* viene utilizzato tra virgolette doppie (ad esempio, '$*' ), si espande in una singola stringa separata dallo spazio. Ad esempio, ' $n ecc'.
    • Quando $@ viene utilizzato tra virgolette doppie (ad esempio, '$@' ), si espande nella stringa separata. Ad esempio, '' '' '$n' ecc.
    • Quando $* e $# non vengono utilizzati tra virgolette doppie, sono entrambi uguali.

Di seguito è riportato il codice che illustra la procedura su come passare argomenti alle funzioni e accedere agli argomenti all'interno della funzione.

BashScript

 #!/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.' 

Produzione

Funzioni di Bash

In questo script, abbiamo aggiunto i valori 'Noi', 'benvenuto', 'tu', 'on' e 'Javatpoint' dopo aver chiamato function_arguments. Tali valori vengono passati al file argomenti_funzione come parametri e memorizzati in una variabile locale. Tuttavia, a differenza di altri linguaggi, l'interprete memorizza i valori passati in variabili predefinite, che vengono poi denominate in base alla sequenza dei parametri passati.

Per esempio,

'Noi' la parola viene memorizzata nella variabile 1 .
'Benvenuto' la parola viene memorizzata nella variabile 2 .
'Voi' la parola viene memorizzata nella variabile 3 .
'SU' la parola viene memorizzata nella variabile 4 .
'Javatpoint' la parola viene memorizzata nella variabile 5 .

inserisci la filigrana nella parola

Ambito variabile

Le variabili globali sono definite come variabili a cui è possibile accedere ovunque all'interno dello script, indipendentemente dall'ambito. Per impostazione predefinita, tutte le variabili sono definite come variabili globali, anche se sono dichiarate all'interno della funzione. Possiamo anche creare variabili come variabile locale. Le variabili locali possono essere dichiarate all'interno del corpo della funzione con il comando ?local? parola chiave quando vengono assegnate per la prima volta. Sono accessibili solo all'interno di quella funzione. Possiamo creare variabili locali con lo stesso nome in diverse funzioni. Per aggiungere una variabile locale, possiamo usare la seguente sintassi:

 local var_name= 

Per comprendere meglio come funziona l'ambito delle variabili in Bash Scripting, controlla il seguente esempio:

BashScript

 #!/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.' 

Produzione

Funzioni di Bash

Come da output, se impostiamo una variabile locale all'interno del corpo della funzione con lo stesso nome di una variabile globale esistente, allora avrà la precedenza sulla variabile globale. Le variabili globali possono essere modificate all'interno della funzione.

Valori restituiti

La maggior parte dei linguaggi di programmazione prevede il concetto di restituire un valore per le funzioni. Ciò significa che la funzione deve rispedire i dati alla posizione di chiamata originale. A differenza delle funzioni nei linguaggi di programmazione 'reali', la funzione Bash non fornisce supporto per restituire un valore quando viene chiamata. Tuttavia, ci consentono di impostare uno stato di ritorno simile al modo in cui un programma o un comando esce con uno stato di uscita. Quando una funzione bash viene completata, il suo valore restituito è lo stato dell'ultima istruzione eseguita nella funzione. Restituisce 0 per lo stato di successo e un numero decimale diverso da zero nell'intervallo 1-255 per il fallimento.

Lo stato di restituzione può essere indicato utilizzando la parola chiave 'return' ed è assegnato alla variabile $?. L'istruzione return termina la funzione e funge da stato di uscita della funzione.

Per esempio, considerare il seguente codice:

aggiornando java

BashScript

 #!/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 $? 

Produzione

Funzioni di Bash

Un'altra opzione migliore per restituire un valore da una funzione è inviare il valore a stdout utilizzando eco O printf comandi, come mostrato di seguito:

bash divide la stringa per delimitatore

BashScript

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

Produzione

 Welcome to Javatpoint. 

Comandi prioritari

Abbiamo un'opzione per sovrascrivere i comandi bash creando una funzione con lo stesso nome del comando che sovrascriveremo. Ad esempio, se vogliamo sovrascrivere il comando 'echo', dobbiamo creare una funzione con il nome 'echo'.

Questo concetto di sovrascrivere i comandi bash può essere utile in alcuni scenari come quando vogliamo utilizzare un comando con opzioni specifiche. Inoltre, quando non ci piace fornire all'intero comando opzioni più volte all'interno dello script. In questi casi, possiamo sovrascrivere il comando bash integrato per comando con opzioni. Ora comprendiamo il concetto di sovrascrittura dei comandi in Bash Shell Scripting con l'aiuto di alcuni esempi:

Esempio

In questo esempio, abbiamo sovrascritto il comando 'echo' e aggiunto il timestamp sotto forma di argomento al comando 'echo'.

BashScript

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

Produzione

Funzioni di Bash

Conclusione

In questo argomento, abbiamo dimostrato la funzione Bash. Una funzione Bash è considerata come un blocco di codice riutilizzabile sviluppato per eseguire un'operazione specifica. Una volta definito, può essere richiamato più volte all'interno di uno script.