将BASH命令的结果分配给变量

时间:2014-03-11 16:48:10

标签: bash shell

我正在尝试在BASH脚本中执行以下命令,并且我尝试了所有合理的$(),$ {}以及``我可以想到的排列,但我还没有能够让它工作。我想将此命令的结果分配给变量:

"scale=2; $var1/$var2" | bc

提前感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:4)

您需要echobc命令导入var=$(echo "scale=2; $var1/$var2" | bc) ,如下所示:

<<<

或者,正如评论中所建议的那样(谢谢!)并且您使用的是BASH,您可以改为使用var=$(bc <<< "scale=2; $var1/$var2")

var=$(bc << EOF
scale=2; $var1/$var2
EOF
)

虽然我们在这里,你也可以使用这里的文件:

var1=10
var2=2
out1=$(echo "scale=2; $var1/$var2" | bc)
out2=$(bc <<< "scale=2; $var1/$var2")
out3=$(bc << EOF
scale=2; $var1/$var2
EOF
)
echo "$out1 $out2 $out3"

这是一个测试,显示他们都做同样的事情:

5.00 5.00 5.00

输出:{{1}}