我正在尝试编写一个基本脚本来计算圆的半径和面积,其中PI = 3.14,并给出了圆周.我对脚本非常陌生,我似乎无法解决这个问题.
#!/bin/bash PI=3.14 CIRC=5 RAD=echo "((CIRC/2*PI))" | bc-l printf "Radius: %.2f" $RAD AREA=echo "((PI*RAD**2))" | bc-l printf "Area: %.2f" $AREA
两个方程的总和没有存储在那些变量中,我不知道为什么.我希望有人可以帮忙解释一下.
解决方法
下面的脚本会这样做:
#!/bin/bash pi=3.14 circ=5 rad=$( echo "scale=2;$circ / (2 * $pi)" | bc ) printf "Radius: %.2f\n" $rad area=$( echo "scale=2;$pi * $rad * $rad" | bc ) printf "Area: %.2f\n" $area
笔记
>见[ command substitution ].
>切勿在脚本中使用完整的大写变量,因为它们通常是为系统保留的,请参阅[ this ].
>用bc控制精度,检查[ this ].