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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ead<br />

}<br />

exit $E_ERR_DIR<br />

cd $var || errore $"Non riesco a cambiare in %s." "$var"<br />

# Grazie, S.C.<br />

Capitolo 11. Coman<strong>di</strong> interni e builtin<br />

“Legge” il valore <strong>di</strong> una variabile dallo st<strong>di</strong>n, vale a <strong>di</strong>re, preleva in modo interattivo l’input dalla<br />

tastiera. L’opzione -a permette a read <strong>di</strong> assegnare le variabili <strong>di</strong> un array (ve<strong>di</strong> Esempio 26-6).<br />

Esempio 11-3. Assegnamento <strong>di</strong> variabile utilizzando read<br />

#!/bin/bash<br />

# "Leggere" variabili.<br />

echo -n "Immetti il valore della variabile ’var1’: "<br />

# L’opzione -n <strong>di</strong> echo sopprime il ritorno a capo.<br />

read var1<br />

# Notate che non vi è nessun ’$’ davanti a var1, perché la variabile<br />

#+ è in fase <strong>di</strong> impostazione.<br />

echo "var1 = $var1"<br />

echo<br />

# Un singolo enunciato ’read’ può impostare più variabili.<br />

echo -n "Immetti i valori delle variabili ’var2’ e ’var3’ (separati da \<br />

uno spazio o da tab): "<br />

read var2 var3<br />

echo "var2 = $var2 var3 = $var3"<br />

# Se si immette un solo valore, le rimanenti variabili restano non<br />

#+ impostate (nulle).<br />

exit 0<br />

Se a read non è associata una variabile, l’input viene assegnato alla variabile de<strong>di</strong>cata $REPLY.<br />

Esempio 11-4. Cosa succede quando read non è associato ad una variabile<br />

#!/bin/bash<br />

# read-novar.sh<br />

echo<br />

# -------------------------- #<br />

echo -n "Immetti un valore: "<br />

193

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

Saved successfully!

Ooh no, something went wrong!