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.

val1=bfpv # ’b,f,p,v’ = 1<br />

val2=cgjkqsxz # ’c,g,j,k,q,s,x,z’ = 2<br />

val3=dt # ecc.<br />

val4=l<br />

val5=mn<br />

val6=r<br />

# Ecco un uso straor<strong>di</strong>nariamente intelligente <strong>di</strong> ’tr’.<br />

# Cercate <strong>di</strong> scoprire cosa succede.<br />

valore=$( echo "$1" \<br />

| tr -d wh \<br />

| tr $val1 1 | tr $val2 2 | tr $val3 3 \<br />

| tr $val4 4 | tr $val5 5 | tr $val6 6 \<br />

| tr -s 123456 \<br />

| tr -d aeiouy )<br />

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

# Assegna dei valori alle lettere.<br />

# Rimuove i numeri dupplicati, tranne quando sono separati da vocali.<br />

# Ignora le vocali, tranne quando separano le consonanti,<br />

#+ che vengono cancellate per ultime.<br />

# Ignora ’w’ e ’h’, che vengono cancellate subito.<br />

#<br />

# The above command substitution lays more pipe than a plumber . [2]<br />

}<br />

input_nome="$1"<br />

echo<br />

echo "Nome = $input_nome"<br />

# Cambia tutti i caratteri del nome in lettere minuscole.<br />

# -----------------------------------------------------nome=$(<br />

echo $input_nome | tr A-Z a-z )<br />

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

# Nel caso il nome fornito contenga sia maiuscole che minuscole.<br />

# Prefisso del co<strong>di</strong>ce soundex: la prima lettera del nome.<br />

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

pos_car=0 # Inizializza la posizione del carattere.<br />

prefisso0=${nome:$pos_car:1}<br />

prefisso=‘echo $prefisso0 | tr a-z A-Z‘<br />

# Cambia in maiuscolo la prima lettera<br />

#+ del co<strong>di</strong>ce soundex.<br />

let "pos_car += 1" # Incrementa la posizione del carattere che<br />

#+ adesso corrisponde alla 2Â ◦ lettera del nome.<br />

nome1=${nome:$pos_car}<br />

622

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

Saved successfully!

Ooh no, something went wrong!