基本上在 Bash 中,我想做的是从用户那里输入秒数并找到小时数。所以基本上如果用户输入 35 输出应该是 0.00972222。
但 bash 给我的是零。
这是我的命令:
echo "Enter the seconds you wish to convert to hours: " && read sec && echo " $((sec/3600)) is the amount of hours "
有没有办法让它在我输入 35 时打印出 0.00972222 。
谢谢!
答案1
在这里试试这个
echo $(echo "35/3600" | bc -l )
所以你的命令看起来像
echo "Enter the seconds you wish to convert to hours: " && read sec && echo " $(echo "$sec/3600" | bc -l ) is the amount of hours "
要控制打印的有效位数,请使用scale=N
。例如:
$ echo "scale=3; 35/3600" | bc -l
.009
如果你还想打印开头0
(奇怪的是,bc
不会轻易做到),您可以将数字输入printf
(也可以为您向上/向下舍入):
$ printf '%.3f\n' $(echo "35/3600" | bc -l)
0.010
$ printf '%.4f\n' $(echo "35/3600" | bc -l)
0.0097