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.

visualizza_primi<br />

# Questo è ciò che si chiama programmazione strutturata.<br />

# ================================================================<br />

echo<br />

exit 0<br />

Capitolo 26. Array<br />

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

# Il co<strong>di</strong>ce oltre la riga precedente non viene eseguito, a cause dell’exit.<br />

# Questa versione migliorata del Crivello, <strong>di</strong> Stephane Chazelas,<br />

#+ esegue il compito un po’ più velocemente.<br />

# Si deve invocare con un argomento da riga <strong>di</strong> comando (il limite dei<br />

#+ numeri primi).<br />

LIMITE_SUPERIORE=$1 # Da riga <strong>di</strong> comando.<br />

let META=LIMITE_SUPERIORE/2 # Metà del numero massimo.<br />

Primi=( ” $(seq $LIMITE_SUPERIORE) )<br />

i=1<br />

until (( ( i += 1 ) > META )) # È sufficiente verificare solo la metà dei<br />

#+ numeri.<br />

do<br />

if [[ -n $Primi[i] ]]<br />

then<br />

t=$i<br />

until (( ( t += i ) > LIMITE_SUPERIORE ))<br />

do<br />

Primi[t]=<br />

done<br />

fi<br />

done<br />

echo ${Primi[*]}<br />

exit 0<br />

Si confronti questo generatore <strong>di</strong> numeri primi, basato sugli array, con uno alternativo che non li utilizza,<br />

Esempio A-16.<br />

--<br />

Gli array si prestano, entro certi limiti, a simulare le strutture <strong>di</strong> dati per le quali <strong>Bash</strong> non ha un supporto<br />

nativo.<br />

495

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

Saved successfully!

Ooh no, something went wrong!