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.

for arg in [lista] ; do<br />

Esempio 10-1. Semplici cicli for<br />

#!/bin/bash<br />

# Elenco <strong>di</strong> pianeti.<br />

Capitolo 10. Cicli ed alternative<br />

for pianeta in Mercurio Venere Terra Marte Giove Saturno Urano Nettuno Plutone<br />

do<br />

echo $pianeta # Ogni pianeta su una riga <strong>di</strong>versa<br />

done<br />

echo<br />

for pianeta in "Mercurio Venere Terra Marte Giove Saturno Urano Nettuno Plutone"<br />

# Tutti i pianeti su un’unica riga.<br />

# L’intera "lista" racchiusa tra apici doppi crea un’unica variabile.<br />

do<br />

echo $pianeta<br />

done<br />

exit 0<br />

Nota: Ogni elemento in [lista] può contenere più parametri. Ciò torna utile quando questi<br />

devono essere elaborati in gruppi. In tali casi, si deve usare il comando set (ve<strong>di</strong> Esempio<br />

11-15) per forzare la verifica <strong>di</strong> ciascun elemento in [lista] e per assegnare ad ogni<br />

componente i rispettivi parametri posizionali.<br />

Esempio 10-2. Ciclo for con due parametri in ogni elemento [lista]<br />

#!/bin/bash<br />

# Pianeti rivisitati.<br />

# Associa il nome <strong>di</strong> ogni pianeta con la sua <strong>di</strong>stanza dal sole.<br />

for pianeta in "Mercurio 36" "Venere 67" "Terra 93" "Marte 142" "Giove 483"<br />

do<br />

set -- $pianeta # Verifica la variabile "pianeta" e imposta i parametri<br />

#+ posizionali.<br />

# i "--" evitano sgradevoli sorprese nel caso $pianeta sia nulla<br />

#+ o inizi con un trattino.<br />

# Potrebbe essere necessario salvare i parametri posizionali<br />

#+ originari, perché vengono sovrascritti.<br />

# Un modo per farlo è usare un array,<br />

# param_origin=("$@")<br />

echo "$1 $2,000,000 miglia dal sole"<br />

160

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

Saved successfully!

Ooh no, something went wrong!