我的服務器上有一個備份腳本,它執行備份的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