Пример сценария

В качестве практического примера сконструируем сценарий, вычисляющий сумму ежемесячных платежей по кредиту. Для передачи сценария программе bc в следующем примере используется встроенный документ:

#!/bin/bash

# loan-calc : сценарий вычисления суммы ежемесячных платежей по кредиту

PROGNAME=$(basename $0)

usage () {

cat <<- EOF

Usage: $PROGNAME PRINCIPAL INTEREST MONTHS

Where:

PRINCIPAL is the amount of the loan.

INTEREST is the APR as a number (7% = 0.07).

MONTHS is the length of the loan's term.

EOF

}

if (($# != 3)); then

usage

exit 1

fi

principal=$1

interest=$2

months=$3

bc <<- EOF

scale = 10

i = $interest / 12

p = $principal

n = $months

a = p * ((i * ((1 + i) ^ n)) / (((1 + i) ^ n) - 1))

print a, " "

EOF

Запустив этот сценарий, вы получите следующие результаты:

[me@linuxbox ~]$ loan-calc 135000 0.0775 180

1270.7222490000

В этом примере вычисляется размер ежемесячных платежей по кредиту на сумму $135 000, выданному под 7,75 % годовых на 180 месяцев (15 лет). Обратите внимание на точность результата. Она определяется значением специальной переменной scale в сценарии на языке bc. Полное описание языка bc можно найти на справочной странице (man) для bc. Несмотря на то что форма записи математических выражений немного отличается от используемой в командной оболочке (bc больше напоминает язык C), значительная часть сценария все же выглядит достаточно понятной, учитывая все, что мы узнали к настоящему моменту.