<Precedenti | Contenuti | Succ.>
Uno script di esempio
Come esempio pratico, costruiremo uno script che esegue un calcolo comune: le rate mensili di un prestito. Nello script seguente, utilizziamo un documento here per passare uno script a bc:
#! / Bin / bash
# loan-calc: script per calcolare le rate mensili del prestito PROGNAME=${0##*/} # Usa l'espansione dei parametri per ottenere l'utilizzo del nome base () {
gatto <<- EOF
Utilizzo: $PROGNAME INTERESSE CAPITALE MESI
Dove:
Il CAPITALE è l'importo del prestito. L'INTERESSE è il TAEG espresso in numeri (7% = 0.07). I MESI sono la durata del prestito.
EOF
}
se (($# != 3)); allora utilizzo
esci da 1
fi
capitale=$1 interessi=$2 mesi=$3
bc <<- EOF
scala = 10
i = $interesse / 12 p = $capitale
n = $mesi
a = p * ((i * ((1 + i) ^ n)) / (((1 + i) ^ n) - 1)) stampa a, "\n"
EOF
#! / Bin / bash
# loan-calc: script per calcolare le rate mensili del prestito PROGNAME=${0##*/} # Usa l'espansione dei parametri per ottenere l'utilizzo del nome base () {
gatto <<- EOF
Utilizzo: $PROGNAME INTERESSE CAPITALE MESI
Dove:
Il CAPITALE è l'importo del prestito. L'INTERESSE è il TAEG espresso in numeri (7% = 0.07). I MESI sono la durata del prestito.
EOF
}
se (($# != 3)); allora utilizzo
esci da 1
fi
capitale=$1 interessi=$2 mesi=$3
bc <<- EOF
scala = 10
i = $interesse / 12 p = $capitale
n = $mesi
a = p * ((i * ((1 + i) ^ n)) / (((1 + i) ^ n) - 1)) stampa a, "\n"
EOF
Una volta eseguito, il risultato sarà il seguente:
[io@linuxbox~]$ calcolo-prestito 135000 0.0775 180
[io@linuxbox~]$ calcolo-prestito 135000 0.0775 180
1270.7222490000
1270.7222490000
Questo esempio calcola la rata mensile per un prestito di $ 135,000 al 7.75% di TAEG per 180 mesi (15 anni). Si noti la precisione della risposta. Questa è determinata dal valore assegnato al tasso speciale. scala variabile in bc sceneggiatura. Una descrizione completa del bc Il linguaggio di scripting è fornito da bc pagina man. Sebbene la sua notazione matematica sia leggermente diversa da quella della shell (bc assomiglia di più a C), la maggior parte di esso sarà abbastanza familiare, in base a quanto abbiamo imparato finora.