
Basicamente, no Bash, o que estou tentando fazer é receber uma entrada de segundos de um usuário e encontrar as horas. Então, basicamente, se o usuário inserir 35, a saída deverá ser 0,00972222.
Mas o bash me dá um zero.
aqui está o comando que tenho:
echo "Enter the seconds you wish to convert to hours: " && read sec && echo " $((sec/3600)) is the amount of hours "
Existe uma maneira de fazer com que imprima 0,00972222 se eu inserir 35.
Obrigado!
Responder1
Aqui tente isso
echo $(echo "35/3600" | bc -l )
então seu comando ficaria assim
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 o número de dígitos significativos impressos, use scale=N
. Por exemplo:
$ echo "scale=3; 35/3600" | bc -l
.009
Se você também quiser 0
imprimir o cabeçalho (o que, estranhamente,bc
não será fácil), você pode alimentar o número printf
(que também pode arredondá-lo para cima/para baixo para você):
$ printf '%.3f\n' $(echo "35/3600" | bc -l)
0.010
$ printf '%.4f\n' $(echo "35/3600" | bc -l)
0.0097