我需要一个计算基本税的 bash 脚本。 它应该可以通过
调用tax.sh
或带有可选参数:
tax.sh (capital or help) (interest rate) (duration)
我所拥有的是:
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
计算总是比应有的小一点。
如何实现参数
一种方法是将位置参数分配给变量,如果
参数不为空,则跳过每个变量的
read
; e. g.
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