我的服务器上有一个备份脚本,它执行备份的cron作业,并向我发送已备份文件的摘要(包括新备份文件的大小)。作为脚本的一部分,我想通过(1024^3)将文件的最终大小除以文件大小(以字节为单位)以GB为单位获取文件大小。Bash整数除法中的浮点数结果
因为bash没有浮点计算,所以我试图用管道来获得结果,但是我很难理解基本的例子。
我试图Pi值到达一个规模,但是,
即使以下工作:
~ #bc -l
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
4/3
1.33333333333333333333
22/7
3.14285714285714285714
q
0
quit
非交互式版本不起作用:
#echo $((22/7)) | bc
3
此作品:
#echo '22/7' | bc -l
3.14285714285714285714
但我需要使用变量。所以它不帮助,下面不工作:
#a=22 ; b=7
#echo $((a/b)) | bc -l
3
我明显缺少在语法东西猛砸中使用变量,可以用什么我误解了一些“指针”使用。
正如DigitalRoss说,我可以使用以下命令:
#echo $a/$b | bc -l
3.14285714285714285714
但是我不能使用复杂的表达式,如:
#echo $a/(($b-34)) | bc -l
-bash: syntax error near unexpected token `('
#echo $a/((b-34)) | bc -l
-bash: syntax error near unexpected token `('
#echo $a/((b-34)) | bc -l
-bash: syntax error near unexpected token `('
有人可以给我一个工作的正确语法掌握浮点结果复杂的算术表达式?
可以教bash例如整数除法与浮点结果:请参阅:http://stackoverflow.com/a/24431665/3776858 – Cyrus 2014-07-26 12:21:38