shell脚本zins计算

时间:2016-12-06 13:21:19

标签: bash shell parameters tax

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

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

1 个答案:

答案 0 :(得分:0)

  

如何实现参数

一种方法是将positional parameters分配给您的变量,如果parameter不为空,则跳过每个变量的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