我的服务器上有一个备份脚本,它执行备份的 cron 作业,并向我发送备份文件的摘要,包括新备份文件的大小。作为脚本的一部分,我想将文件的最终大小除以 (1024^3) 以从文件大小(以字节为单位)中获得以 GB 为单位的文件大小。
由于 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 `('
有人可以给我一个正确的语法来获得具有复杂算术表达式的浮点结果吗?