我正在尝试在BASH脚本中执行以下命令,并且我尝试了所有合理的$(),$ {}以及``我可以想到的排列,但我还没有能够让它工作。我想将此命令的结果分配给变量:
"scale=2; $var1/$var2" | bc
提前感谢您的时间和帮助。
答案 0 :(得分:4)
您需要echo
将bc
命令导入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}}