我需要一个计算基本税的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
我不知道如何实现参数或正确计算:/ 计算总是比它应该小一点。
答案 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