Lezione 8 – Le funzioni

Anche negli script bash è possibile creare delle funzioni.
Sono comode da usare quando bisogna usare pezzi di codice, da richiamare in vari punti dello script, che si ripetono più volte all’interno dello script.
La sintassi per creare una funzione :


function  nomefunzione()

{
codice_della_funzione
}

oppure

nomefunzione()
{
codice_della_funzione
}


All’interno dele parentesi graffe andrà scritto il codice che la funzione deve da eseguire.
Per richiamare la funzione quando serve all’interno dello script,  basta scrivere il nome della funzione senza le parentesi tonde.
Alla funzione si possono passare dei parametri ,che possono essere anche delle variabili. Questi devono esssere scritti dopo il nome della funzione  e verranno assegnati con l’ordine indicato.

Esempio: nel seguente script si fa uso della funzione somma per calcolare la somma di tutti gli elementi passati come argomento della funzione.

#!/bin/bash
#Le righe seguenti definiscono la funzione
# queta funzione somma le 2 variabili a e b e ne stampa a video il risultato
function somma() {
                                   totale=$((a+b))
                                  echo $totale

                                 }
# Vengono assgenate alle variabili a e b i valori da sommare

a=5
b=2
# l’istruzione seguente richiama la funzione passadogli i valori delle avariabili a e b
somma $a $b

 

Le variabili all’interno degli script bash sono globali , se si vogliono definire delle variabili locali alla sola funzione basta definirla all’interno della stessa con l’istruzione
local variabile

La funzione può restituire anche un valore NUMERICO utilizzando l’istruzione return.
Il valore sarà memorizzato nella variabile $?

Esempio: vediamo lo script precedente solo che alla funzione verranno passati i parametri (numeri) che saranno memorizzati in variabili locali alla funzione per essere poi sommati e il risulto della somma sarà restituito dalla funzione come argoemnto e assegnato poi alla variabile risultato.

#!/bin/bash
# Definita la funzione somma
function somma() {
                                   # vengono definite le variabili totali
                                    local a
                                    local b
                                    local totale
                                    totale=$((a+b))
                                    return $?
                                    }
# alla variabile risultato è assegnato il valore restituito dalal funzione
# somma a cui sono stati passati i valori 2 e 5
risultato= $(somma 5 2)

 

Librerie di funzioni

E’ possibile creare delle librerie con una serie di funzioni memorizzandole in file da richiamre all’occorrenza;  in questo modo una volta scritte delle funzioni possono essere richiamate in altri script senza riscriverle.
Per poter importare le librerie all’interno del nostro script useremo il comando

source “nomefile”

ritornando al nostro esempio avendo definito la funzione somma memorizzeremo lo scirpt nel file libreria.sh
ora per usarla in altri script dobbiamo richioamare la libreria all’interno dello script con il comando
source “./libreria.sh”

Ritornando sull’argomento variabili posizionali .
Abbiamo visto che ci sono delle variabili che vengono passate e/o restituiti dalle funzioni (ma vale anche per lo script), sono dette  Variabili posizionali

$0 contiene il nome dello script
$1 contiene il primo argomento passato alla funzione
$2 contiene il secondo argomento passato alla funzione
…e così via
$# contiene il numero di argomenti passati alla funzione
$@ e $* contengono tutti gli argomenti
$? contiene il valore di uscita del comando return della fuznione

 

Lezione Precedente : Cicli (loop)                                                                        Lezione Prossima:  —

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Anti-spam: complete the taskWordPress CAPTCHA