В сценарии, который я сейчас пишу, мне нужны десятичные вычисления, поэтому я решил использовать bc
. Я не знаком с этим инструментом, поэтому простите меня, если вопрос тривиален.
Когда я использую консоль и набираю:
установить r_m=`echo "масштаб=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
Почему?
ОБНОВЛЕНИЕ Я заключил все после =
в обратные кавычки. Раньше я не знал, как использовать их в блок-цитатах.
Оболочка bash 2.05
(standard_in) 1: syntax error
(четыре раза). Итак, какие значения имеют переменные$pd_f
,$d_f
,$fr_numb
? - person Paŭlo Ebermann   schedule 19.02.2011