¿Es posible obtener un resultado decimal al realizar una división en Bash?

¿Es posible obtener un resultado decimal al realizar una división en Bash?

Básicamente, en Bash, lo que intento hacer es tomar una entrada de segundos de un usuario y encontrar las horas. Básicamente, si el usuario ingresa 35, la salida debería ser 0.00972222.

Pero bash me da es un cero.

Aquí está el comando que tengo:

echo "Enter the seconds you wish to convert to hours: " && read sec && echo " $((sec/3600)) is the amount of hours "

¿Hay alguna manera de hacerlo para que imprima 0.00972222 si ingreso 35?

¡Gracias!

Respuesta1

Aquí prueba esto

echo $(echo "35/3600" | bc -l )

entonces tu comando se vería así

echo "Enter the seconds you wish to convert to hours: " && read sec && echo " $(echo "$sec/3600" | bc -l ) is the amount of hours "

Para controlar el número de dígitos significativos impresos, utilice scale=N. Por ejemplo:

$ echo "scale=3; 35/3600" | bc -l 
.009

Si también desea 0imprimir el encabezado (que, por extraño que parezca,bcno lo hará fácilmente), puede introducir el número a printf(que también puede redondearlo hacia arriba o hacia abajo):

$ printf '%.3f\n' $(echo "35/3600" | bc -l)
0.010
$ printf '%.4f\n' $(echo "35/3600" | bc -l)
0.0097

información relacionada