A primeira variante ( let var=2.5+2.5
) não funciona porque o bash não suporta ponto flutuante.
A segunda variante ( let var=2,5+2,5
) funciona, mas pode não ser o que você deseja porque a vírgula tem outro significado neste caso: é um separador, separador de comando. Então, seu comando é equivalente nesse caso com os três comandos a seguir:
let var=2
let 5+2
let 5
que são todos válidos e, por isso, você obtém var=2
.
Mas a boa notícia é que você pode usar bc
para realizar o que deseja. Por exemplo:
var=$(bc <<< "2.5+2.5")
Ou awk
:
var=$(awk "BEGIN {print 2.5+2.5; exit}")
Ou perl
:
var=$(perl -e "print 2.5+2.5")
Ou python
:
var=$(python -c "print 2.5+2.5")