无论如何将变量传递给 bc,有一个要执行的命令?

Key*_*ate 6 bash shell-script bc

我需要传递某些变量来bc获得浮点输出,

var1=$((<some operation>))
var2=$((<some operation>))      #Needs var1
var3=$((<some operation>))      #Needs var2
bc -l <<< $var3                 #Need output in Floating points
Run Code Online (Sandbox Code Playgroud)

输出:

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

无论如何要克服这个?

更新:

diff=$(($epoc2-$epoc1))
var1=$(($diff / 60))
var2=$(($var1 / 57))
var3=`bc <<< 'scale=2; $var2'`
Run Code Online (Sandbox Code Playgroud)

apa*_*aul 7

简单的引号不会扩展$变量。你必须使用双引号:

var3=`bc <<< "scale=2; $var2"`
Run Code Online (Sandbox Code Playgroud)

另一方面,$var1并且$var2不会存储浮动(bash不管理它们),因此您可以bc使用。

diff=$(($epoc2-$epoc1))
var1=$(bc <<< "scale=3 ; $diff / 60")
var2=$(bc <<< "scale=3 ; $var1 / 57")
var3=$(bc <<< "scale=2; $var2")
Run Code Online (Sandbox Code Playgroud)