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.

Appen<strong>di</strong>ce A. Script aggiuntivi<br />

# +++++++++++++++++++++ Gestione delle Eccezioni ++++++++++++++++++++++++++++<br />

# Adesso vengono passati alla funzione <strong>di</strong> assegnamento-valore sia il nome<br />

#+ completo che lo stesso nome a cui è stata tolta la lettera iniziale.<br />

# Se si ottiene lo stesso valore ciò significa che ai primi due caratteri<br />

#+ del nome corrisponde lo stesso valore, quin<strong>di</strong> il secondo va cancellato.<br />

# Inoltre, è necessario controllare se la prima lettera del nome<br />

#+ è una vocale, una ’w’ o una ’h’, perché questo può incasinare tutto. [3]<br />

car1=‘echo $prefisso | tr A-Z a-z‘ # Prima lettera del nome in maiuscolo.<br />

assegna_valore $nome<br />

s1=$valore<br />

assegna_valore $nome1<br />

s2=$valore<br />

assegna_valore $car1<br />

s3=$valore<br />

s3=9$s3 # Se la prima lettera del nome è<br />

#+ una vocale o una ’w’ o una ’h’,<br />

#+ allora "valore" è nulla<br />

#+ (non impostata). Viene quin<strong>di</strong> impostata<br />

#+ a 9, valore altrimenti inutilizzato,<br />

#+ per poter effettuare una verifica.<br />

if [[ "$s1" -ne "$s2" || "$s3" -eq 9 ]]<br />

then<br />

suffisso=$s2<br />

else<br />

suffisso=${s2:$car_pos}<br />

fi<br />

# ++++++++++++++++++ fine Gestione delle Eccezioni ++++++++++++++++++++++++++<br />

completa=000 # Si usano al massimo 3 zeri<br />

#+ per completare il co<strong>di</strong>ce.<br />

soun=$prefisso$suffisso$completa # Completa con gli zeri (se necessario).<br />

LUNGMAX=4 # Il co<strong>di</strong>ce viene ridotto a 4 caratteri.<br />

soundex=${soun:0:$LUNGMAX}<br />

echo "Soundex = $soundex"<br />

echo<br />

# Il co<strong>di</strong>ce soundex è un metodo per l’or<strong>di</strong>namento e la classiicazione<br />

#+ dei nomi somiglianti.<br />

# Il co<strong>di</strong>ce soundex <strong>di</strong> un dato nome è formato dalla prima lettera del nome,<br />

#+ seguita da tre cifre calcolate nel modo visto sopra.<br />

# A nomi simili dovrebbero corrispondere co<strong>di</strong>ci soundex quasi uguali.<br />

623

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

Saved successfully!

Ooh no, something went wrong!