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.

12.8. Coman<strong>di</strong> per le operazioni matematiche<br />

factor<br />

bc<br />

“Calcoli matematici”<br />

Scompone un intero in fattori primi.<br />

bash$ factor 27417<br />

27417: 3 13 19 37<br />

Capitolo 12. Filtri, programmi e coman<strong>di</strong> esterni<br />

<strong>Bash</strong> non è in grado <strong>di</strong> gestire i calcoli in virgola mobile, quin<strong>di</strong> non <strong>di</strong>spone <strong>di</strong> operatori per alcune<br />

importanti funzioni matematiche. Fortunatamente viene in soccorso bc.<br />

Non semplicemente una versatile utility per il calcolo in precisione arbitraria, bc offre molte delle<br />

potenzialità <strong>di</strong> un linguaggio <strong>di</strong> programmazione.<br />

bc possiede una sintassi vagamente somigliante al C.<br />

Dal momento che si tratta <strong>di</strong> una utility UNIX molto ben collaudata, e che quin<strong>di</strong> può essere<br />

utilizzata in una pipe, bc risulta molto utile negli script.<br />

Ecco un semplice modello <strong>di</strong> riferimento per l’uso <strong>di</strong> bc per calcolare una variabile <strong>di</strong> uno script.<br />

Viene impiegata la sostituzione <strong>di</strong> comando.<br />

variabile=$(echo "OPZIONI; OPERAZIONI" | bc)<br />

Esempio 12-42. Rata mensile <strong>di</strong> un mutuo<br />

#!/bin/bash<br />

# monthlypmt.sh: Calcola la rata mensile <strong>di</strong> un mutuo (prestito).<br />

# Questa è una mo<strong>di</strong>fica del co<strong>di</strong>ce del pacchetto "mcalc" (mortgage calculator),<br />

#+ <strong>di</strong> Jeff Schmidt e Mendel Cooper (vostro devotissimo, autore <strong>di</strong><br />

#+ questo documento).<br />

# http://www.ibiblio.org/pub/Linux/apps/financial/mcalc-1.6.tar.gz [15k]<br />

echo<br />

315

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

Saved successfully!

Ooh no, something went wrong!