back to top

Scrivere una funzione – Guida Shell Scripting

Anche lo shell scripting prevede la possibilità di scrivere delle funzioni. Una funzione è una porzione di codice indipendente alla quale viene assegnata, appunto, una specifica funzione all’interno del programma.

Scrivere funzioni è molto utile quando si deve compire una determinata operazione complessa più di una volta all’interno dello stesso programma o della stessa suite di programmi. Grazie alle funzioni si evita, infatti, di riscrivere più volte il medesimo codice operativo ma ci si limita a richiamare la funzione alla quale è stato adibito quello specifico compito.

Una funzione può essere scritta all’interno dello script oppure su un file separato da includersi nello o negli script che usufruiranno della funzione.

Vediamo nell’esempio una semplice funzione scritta su un apposito file (separato dallo script principale) che chiameremo “miafunzione.lib”:

#Attenzione!!!
#Non va messo #!/bin/sh

#Funzione per il calcolo del prezzo di una merce 
#compreso di IVA.

#La funzione prevede, quale unico parametro, il 
#prezzo al netto dell'iva.

tot_iva() { 
   IVA=`expr $1 / 100`
   IVA=`expr $IVA \* 20`
   TOT=`expr $1 + $IVA`
   echo $TOT 
} 
Come abbiamo visto la sintassi è data dal nome della funzione seguita da () e da una coppia di parentesi graffe al cuni interno viene inserito il codice operativo.

Ora vediamo il contenuto dello script principale che richiama il file “miafunzione.lib” per poterne sfruttare le potenzialità:

#!/bin/sh

#Includo il file miafunzione.lib
#Nel nostro es. il file si trova nella stessa directory
. ./miafunzione.lib

#Definisco due variabili contenenti il prezzo 
#netto (senza IVA) di due ipotetici prodotti
VHS=10
DVD=20

#Richiamo la funzione per calcolare il prezzo compreso IVA
echo "Prezzo di una VHS compreso Iva: `tot_iva $VHS` Euro"
echo "Prezzo di un DVD compreso Iva: `tot_iva $DVD` Euro"
Come risulta intuitivo non sarà necessario scrivere più volte il codice per il calcolo del prezzo totale… basterà scriverlo una volta nella funzione e poi richiamare quest’ultima quante volte la si necessita.

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).