以浮点数为字符串并在Bash中进行运算

Taking Floating Point Number as String and Performing Aritmetic in Bash

我有以下 Bash 代码,它运行 C++ 二进制文件 (./code) 并存储结果:

#!/bin/bash

output=$(./code /);

read -ra arr -d '' <<<"$output" 
value=${arr[-1]}
sum=$value+1.034
echo $sum

我希望它能够获取变量 sum 的值,这是一个小于零的数字,即 0.01357 并且能够向其添加另一个浮点数,在将结果输出到屏幕之前。

所以结果应该是1.04757,但是我目前得到的输出是:

0.01357+1.034

Bash 不支持浮点运算。您需要另一个程序为您计算。
以下是使用 bcawk 或 GNU datamash:

的三个示例
#!/bin/bash

read -ra arr -d '' <<<"$(./code /)" 

# bc
printf '%s + %s\n' "${arr[-1]}"  "1.034" | bc

# or awk
#awk -v val="${arr[-1]}" 'BEGIN{print val + 1.034}'

# or datamash
#datamash sum 1 <<<$(printf '%s\n' "${arr[-1]}" "1.034")