11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

}<br />

echo<br />

if [ "$2" ]<br />

then<br />

echo "-Il parametro nr.2 è \"$2\".-"<br />

fi<br />

return 0<br />

echo "Non viene passato niente."<br />

funz2 # Richiamata senza alcun parametro<br />

echo<br />

Capitolo 23. Funzioni<br />

echo "Viene passato un parametro vuoto."<br />

funz2 "" # Richiamata con un parametro <strong>di</strong> lunghezza zero<br />

echo<br />

echo "Viene passato un parametro nullo."<br />

funz2 "$param_non_inizializ" # Richiamata con un parametro non inizializzato<br />

echo<br />

echo "Viene passato un parametro."<br />

funz2 primo # Richiamata con un parametro<br />

echo<br />

echo "Vengono passati due parametri."<br />

funz2 primo secondo # Richiamata con due parametri<br />

echo<br />

echo "Vengono passati \"\" \"secondo\"."<br />

funz2 "" secondo # Richiamata con il primo parametro <strong>di</strong> lunghezza zero<br />

echo # e una stringa ASCII come secondo.<br />

exit 0<br />

Importante: Il comando shift opera sugli argomenti passati alle funzioni (ve<strong>di</strong> Esempio 33-15).<br />

Ma, cosa si può <strong>di</strong>re a proposito degli argomenti passati ad uno script da riga <strong>di</strong> comando? Una funzione<br />

è in grado <strong>di</strong> rilevarli? Bene, ve<strong>di</strong>amo <strong>di</strong> chiarire l’argomento.<br />

Esempio 23-3. Funzioni e argomenti passati allo scrip da riga <strong>di</strong> comando<br />

#!/bin/bash<br />

# func-cmdlinearg.sh<br />

# Eseguite lo script con un argomento da riga <strong>di</strong> comando,<br />

#+ qualcosa come $0 arg1.<br />

448

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!