第三章:Creating Utilities--29.計算貸款

   目的就是在溫度轉換上再進一步的瞭解數學計算。 shell

代碼: rest

#!/bin/sh

# loancalc.sh -- 指定貸款的本金、稅率、年限

# 公式: M = P * (J / (1- (1 + J)** - N))
# 其中, P = 本金、J = 每個月稅率、N = 年限(月表示)
# 用戶輸入P、I(年利率)、L(長度,年份)

# 注意,公式中後面的 (1 + J)** - N 是一個總體,表示指數
# 好比,(1 + 1)** - 2 就是 2 ^ -2,至關於 1/2*2 = 0.25

#source library.sh

if [ $# -ne 3 ]; then
	echo "Usage: `basename $0` principal interest loan-duration-years" >&2
	exit 1
fi

# 這兒用到的scriptbc.sh是第九個腳本的程序
# 傳給它的參數是一個公式,部分運算符號須要轉義
# 轉義的有: ( ) * ^
P=$1 I=$2 L=$3
J="$(scriptbc.sh -p 8 $I/\(12 \* 100\))"
N="$(($L*12))"
M="$(scriptbc.sh -p 8 $P\*\($J/\(1-\(1+$J\)\^-$N\)\))"

dollars="$(echo $M | cut -d. -f1)"
cents="$(echo $M | cut -d. -f2 | cut -c1-2)"

# newnicenum.sh是第4個腳本中的程序
cat << EOF
A $L year loan at $I% interest with a principal amount of $(newnicenum.sh $P 1)
results in a payment of \$$dollars.$cents each month for the duration of
the loan($N payments).
EOF

exit 0
運行結果:

$ loancalc 40000 6.75 4 
A 4 year loan at 6.75% interest with a principal amount of 40,000 
results in a payment of $953.21 each month for the duration of 
the loan (48 payments). 

$ loancalc 40000 6.75 5 
A 5 year loan at 6.75% interest with a principal amount of 40,000 
results in a payment of $787.33 each month for the duration of 
the loan (60 payments).
分析腳本:
這個腳本比較完整的展現了一個數學公式的運算。

ps: 

   原書中在腳本分析這一塊還有一些闡述,不過我以爲用處不大。最重要的就是給scriptbc.sh腳本傳遞數學公式,這個掌握了,這個腳本就沒問題了。其它的,好比提示用戶具體參數含義,以及每一個參數的格式之類的都是次要的。
   另外,原書中還分析了cut的兩個命令,由於在以前的第6個腳本中,重點介紹過了,就再也不重複了。
code

相關文章
相關標籤/搜索