Dado que algunas de las respuestas anteriores mencionan específicamente ksh93
, vale la pena señalar que puede hacer cálculos de coma flotante, por ejemplo:
$ print $((1.0/3))
0.333333333333333333
Puede controlar la precisión de la salida con printf, por ejemplo:
$ printf "%.4f\n" $((1.0/3))
0.3333
Al menos un argumento debe especificarse como un número de coma flotante como el anterior. Si ambos se especifican como enteros, entonces solo se realiza la matemática entera, por ejemplo:
$ print $((1/3))
0
Esto puede ser útil cuando necesita matemática de punto flotante en un script de shell, ya que puede evitar llamar a un comando externo.
((...))
en realidad se puede usar para tareas enbash
,ksh
yzsh
:n=10; ((n+=10)); echo $n
imprime 20 e((x=1)); echo $x
imprime 1.