我有一个备份脚本在我的服务器上,它会进行定期备份,并向我发送备份文件的总结,包括新备份文件的大小。作为脚本的一部分,我想将文件的最终大小除以 (1024^3) 以获取以 GB 为单位的文件大小,而不是以字节为单位的文件大小。
由于 bash 不支持浮点数计算,我尝试使用管道将结果传递给 bc,但我在基本示例上遇到了困难。
我试图将 Pi 的值设置为一个比例,然而,即使以下命令可以工作:
一个非交互版本无法工作:
我在使用Bash中的变量语法方面显然缺少某些东西,需要一些关于我误解的“指针”。正如DigitalRoss所说,我可以使用以下内容:
由于 bash 不支持浮点数计算,我尝试使用管道将结果传递给 bc,但我在基本示例上遇到了困难。
我试图将 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
我在使用Bash中的变量语法方面显然缺少某些东西,需要一些关于我误解的“指针”。正如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 `('
有人能给我一个可行的、正确的语法,用于获取复杂算术表达式中的浮点结果吗?