вычисление zins скрипта оболочки

Мне нужен сценарий bash, который вычисляет базовый налог. Он должен вызываться

tax.sh или с необязательным параметром: tax.sh (капитал или помощь) (процентная ставка) (длительность)

Что у меня есть, так это:

re='^-?[0-9]+([.][0-9]+)?$'
echo "capital: "
read capital
if ![[ $capital =~ $re ]] ; then
  echo "invalid capital!" >&2; exit 1
fi
echo "rate: "
    read rate
    if ![[ $rate=~ $re ]] ; then
      echo "invalid rate!" >&2; exit 1
    fi
echo "duration: "
    read duration
    if ![[ $duration=~ $re ]] ; then
      echo "invalid duration!" >&2; exit 1
    fi
echo "the capital after "$duration" years is: "
echo "scale=5;($capital*($rate/100)*$duration)+$capital" | bc

Я понятия не имею, как реализовать параметры или правильно выполнить расчет :/ Расчет всегда немного меньше, чем должен быть.


person Dimitri Strogatrov    schedule 06.12.2016    source источник
comment
Какой у вас здесь вопрос? ваш сценарий выглядит нормально, за исключением нескольких экземпляров синтаксической ошибки, оставляющих пробел в ![[ $rate=~ $re ]] ; до ! [[ $rate =~ $re ]] ;   -  person Inian    schedule 06.12.2016
comment
Расчет всегда немного меньше, чем должен быть. Примеры?   -  person Ruslan Osmanov    schedule 06.12.2016
comment
например 5000 1 5 должно быть 5255,05, но в сценарии оболочки это 5250. и второй вопрос, как я реализую параметры   -  person Dimitri Strogatrov    schedule 06.12.2016
comment
@DimitriStrogatrov: Что делает переменная $tax в расчетах? Его раньше не читали и не ставили?   -  person Inian    schedule 06.12.2016
comment
извините, на самом деле это была моя опечатка... я имел в виду $rate. произошло при копировании из шпатлевки...   -  person Dimitri Strogatrov    schedule 07.12.2016
comment
Я подозреваю, что причина, по которой ответ слишком мал, заключается в том, что формула предполагает простой процент, но требуется сложный процент. Необходимо использовать другую формулу. Что касается параметров, см. Как передать параметры сценарию Linux Bash?.   -  person pjh    schedule 07.12.2016


Ответы (1)