私が書いているスクリプトでは、小数の計算が必要なので、を使用することにしましbc
た。私はこのツールに精通していないので、質問が些細なものであれば許してください。
コンソールを使用して次のように入力すると:
set r_m = `echo" scale = 6; $ pd_f * $ d_f *(1 / sqrt(3))+($ fr_numb-1)*($ pd_f * $ d_f *(1 / sqrt(3))+ $ pd_f * $ d_f * 0.5 *(s(3.14159265 * 30/180)/ c(3.14159265 * 30/180)))+ 0.4 "| bc -l`
それからecho "$r_m"
それは私に与えます:
19.849870
($pd_fと$d_fは前にそれぞれ1.129と1.126と宣言されました、ああそして$ fr_numb = 18)
しかし(!)bashスクリプトで同じ行を使用します:
r_m = `echo" scale = 6; $ pd_f * $ d_f *(1 / sqrt(3))+($ fr_numb-1)*($ pd_f * $ d_f *(1 / sqrt(3))+ $ pd_f * $ d_f * 0.5 *(s(3.14159265 * 30/180)/ c(3.14159265 * 30/180)))+ 0.4 "| bc -l`
私に与える:
.033022
なんで?
更新私はすべて=
をバックティックで囲みました。以前、ブロッククォートでそれらを使用する方法を知りませんでした。
シェルはbash2.05です