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

wat*_*sky 4 scripting linux shell bash

很容易,我正在编写一个脚本,它需要一些浮点后有 2 位数字的值。尝试使用bc我不明白如何使用“比例”,即

A=12 ; bc <<< $(($A/5))
Run Code Online (Sandbox Code Playgroud)

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

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

(standard_in) 1: illegal character: $
(standard_in) 1: illegal character: $
Run Code Online (Sandbox Code Playgroud)

Hrv*_*jar 5

用双引号替换单引号;因为$A在您的等式中使用单引号没有扩展,而是被视为字面上$A没有12

A=12 ; bc <<< "scale=2;$(($A/5))"
2
Run Code Online (Sandbox Code Playgroud)

此外,在 $(()) 中的变量不需要指定为$A,只是A会做,例如

A=12 ; bc <<< "scale=2;$((A/5))"
2
Run Code Online (Sandbox Code Playgroud)

接下来,在执行 $(()) 时,您会调用子shell,这不是您想要做的,因为bc那时什么也不做。尝试这个

A=12 ; bc <<< "scale=2; $A/5"
2.40
Run Code Online (Sandbox Code Playgroud)