bc:使用带有 bash 变量的“scale”

bc:使用带有 bash 变量的“scale”

简单来说,我正在编写一个脚本,需要一些浮点后有 2 位数字的值。尝试使用时,bc我不明白如何使用“scale”,即

A=12 ; bc <<< $(($A/5))

这是正确的,但添加“scale”会导致错误:

A=12 ; bc <<< 'scale=2;$(($A/5))'

(standard_in) 1: illegal character: $
(standard_in) 1: illegal character: $

答案1

用双引号替换单引号;因为$A公式中的单引号不会展开,而是被视为字面上$A12

A=12 ; bc <<< "scale=2;$(($A/5))"
2

另外,$(()) 里面的变量不需要指定为$A,直接A就可以了,例如

A=12 ; bc <<< "scale=2;$((A/5))"
2

接下来,执行 $(()) 时会调用 subshel​​l,但这并不是您想要的,因为bc此时不会执行任何操作。试试这个

A=12 ; bc <<< "scale=2; $A/5"
2.40

答案2

尝试:

A=12;echo 'scale=2;'"$A / 5"|bc -l

相关内容