//Le funzioni in Bash

Le funzioni in Bash

0 votes
Share on FacebookShare on Google+Tweet about this on TwitterEmail this to someonePrint this page

This post has already been read 1128 times!

Una delle cose che trovo più utili, interessanti e divertenti di un sistema operativo è senza dubbio la linea di comando. La linea di comando è uno strumento immensamente piu potente rispetto a un interfaccia grafica, è uno strumento che ci offre la possibilitá di automatizzare gran parte del lavoro che svolgiamo ogni giorno.

In questo primo tutorial su Bash vi propongo qualche piccolo esempio su un argomento poco usato sulla linea di comando, le funzioni.

Estendere la linea di comando con una nuova funzione è semplice come eseguire il comando “function” :

matteo@Duff:~/Documents/BGMF/BashExample/E1$ function say_hello () {
> echo 'Hello World!!!'
> }

possiamo controllare che la nostra funzione “say_hello” è di tipo funzione :

matteo@Duff:~/Documents/BGMF/BashExample/E1$ type say_hello 
say_hello is a function
say_hello () 
{ 
    echo 'Hello World!!!'
}
matteo@Duff:~/Documents/BGMF/BashExample/E1$ 

Una volta eseguita il risultato è esattamente quello che ci aspettiamo

matteo@Duff:~/Documents/BGMF/BashExample/E1$ say_hello 
Hello World!!!
matteo@Duff:~/Documents/BGMF/BashExample/E1$

Voledo possiamo anche decidere di salvare il risultato in una variabile, basterà digitare il nome della variabile e dire che sarà uguale all’esecuzione della nostra funzione.

matteo@Duff:~/Documents/BGMF/BashExample/E1$ hello=$(say_hello)

Infatti controllando il contenuto della variabile vedremo direttamente il risultato precedentemente salvato.

matteo@Duff:~/Documents/BGMF/BashExample/E1$ echo $hello
Hello World!!!
matteo@Duff:~/Documents/BGMF/BashExample/E1$

Le funzioni in bash possono anche prendere dei parametri in ingresso, nel seguente esempio è possibile vedere come vengono gestiti :

  • $# indica il numero di parametri in input passati dalla funzione
  • $@ E $* contengono la lista completa di tutti i parametri di input
  • $1, $2, $3 … $n contengono l’ennesimo parametro di input
matteo@Duff:~/Documents/BGMF/BashExample/E1$ function say_hello () {
> echo number of parameter $#
> echo all parameters $*
> echo 'Hello ' $1
> }
matteo@Duff:~/Documents/BGMF/BashExample/E1$

Eseguendo la nostra funzione possiamo direttamente vedere il funzionamento.

matteo@Duff:~/Documents/BGMF/BashExample/E1$ say_hello World
number of parameter 1
all parameters World
Hello  World
matteo@Duff:~/Documents/BGMF/BashExample/E1$