0

我需要一个计算基本税的 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

我不知道如何实现参数或正确计算:/计算总是比它应该的小一点。

4

1 回答 1

0

如何实现参数

一种方法是将位置参数分配给变量,如果参数不为空,则跳过read每个变量的 例如

capital=$1; ${capital:+:} read -p "capital: " capital
…
rate=$2; ${rate:+:} read -p "rate: " rate
…
duration=$3; ${duration:+:} read -p "duration: " duration
…

正确计算

正如 pjh 正确地写道:“答案太小的原因是因为公式假设单利但需要复利。必须使用不同的公式。 ”这是:

echo "scale=5;$capital*(1+$rate/100)^$duration" | bc
于 2018-04-30T11:24:23.000 回答