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.

case "$variabile" in<br />

"$con<strong>di</strong>zione1" )<br />

comando...<br />

;;<br />

"$con<strong>di</strong>zione2" )<br />

comando...<br />

;;<br />

esac<br />

Nota:<br />

Capitolo 10. Cicli ed alternative<br />

• Il "quoting" delle variabili non è obbligatorio, dal momento che la sud<strong>di</strong>visione delle parole<br />

non ha luogo.<br />

• Ogni riga <strong>di</strong> verifica termina con una parentesi tonda chiusa ).<br />

• Ciascun blocco <strong>di</strong> istruzioni termina con un doppio punto e virgola ;;.<br />

• L’intero blocco case termina con esac (case scritto al contrario).<br />

Esempio 10-24. Impiego <strong>di</strong> case<br />

#!/bin/bash<br />

# Verificare intervalli <strong>di</strong> caratteri.<br />

echo; echo "Premi un tasto e poi invio."<br />

read Tasto<br />

case "$Tasto" in<br />

[[:lower:]] ) echo "Lettera minuscola";;<br />

[[:upper:]] ) echo "Lettera maiuscola";;<br />

[0-9] ) echo "Cifra";;<br />

* ) echo "Punteggiatura, spaziatura, o altro";;<br />

esac # Sono permessi gli intervalli <strong>di</strong> caratteri se<br />

#+ compresi tra [parentesi quadre]<br />

#+ o nel formato POSIX tra [[doppie parentesi quadre.<br />

# La prima versione <strong>di</strong> quest’esempio usava, per in<strong>di</strong>care<br />

#+ gli intervalli <strong>di</strong> caratteri minuscoli e maiuscoli, le forme<br />

#+ [a-z] e [A-Z].<br />

# Questo non è più possibile nel caso <strong>di</strong> particolari impostazioni<br />

#+ locali e/o <strong>di</strong>stribuzioni Linux.<br />

# POSIX consente una maggiore portabilità.<br />

# Grazie a Frank Wang per averlo evidenziato.<br />

# Esercizio:<br />

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

# Così com’è, lo script accetta la pressione <strong>di</strong> un solo tasto, quin<strong>di</strong><br />

#+ termina. Mo<strong>di</strong>ficate lo script in modo che accetti un input continuo,<br />

178

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

Saved successfully!

Ooh no, something went wrong!