
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 0
imprimir el encabezado (que, por extraño que parezca,bc
no 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