如何将小数值添加到 bash 脚本中的值?

How do I add a decimal value to a value in my bash script?

我正在抓取输出文件的尾部,然后想将该值加 0.000001。

到目前为止,我已经尝试过这种方式:

offset=0.000001

time=$(($(`tail -1 speed.txt1`) + $offset))

Bash本身没有任何浮点能力。您需要使用其他工具在 shell.

中获得浮点数结果

给定:

cat file
1
2
3

您可以在 shell:

中使用 bc 作为浮点数
offset='0.000001'
printf "%s+%s\n" $(tail -1 file) "$offset" | bc
3.000001

awk:

awk -v offset="$offset" 'END{printf "%.7f\n", +offset}' file
3.000001

由于 bc 不理解科学计数法(即 1.3E6),您仍然可以在 shell:

中使用 printf 对其进行归一化
x=1.33E6
printf "%f\n" "$x"
1330000.000000

然后然后传递给bc

offset="1e-6"
x=1.33E6
printf "%f+%f\n" "$x" "$offset"
1330000.000000+0.000001

printf "%f+%f\n" "$x" "$offset" | bc
1330000.000001