使用bash脚本计算圆的面积和半径

时间:2016-12-14 08:44:15

标签: linux bash

r=15
phi=3.14
d=30

let area=$r*$r*phi
echo $area

let radius=2*$phi*$d
echo $radius

当我运行代码时,显示错误“语法错误:无效算术运算符(错误标记为”.14“)。我已经在google上搜索了这个问题。解决方案使用bc(bash计算器)。我的问题是有其他解决方案吗?

第二个条件我改为22/7为phi。但是半径结果并不像预期的那样 面积计算是正确的707,但半径应该是188而不是180。

THX

2 个答案:

答案 0 :(得分:1)

我会使用awk

circum=$(awk 'BEGIN{print 3.14159*30}')

echo $circum
94.2477

或者,如果您想要一次性使用周长和面积:

read circum area < <(awk 'BEGIN{pi=3.14159;r=15;print 2*pi*r,pi*r*r}')

echo $circum $area
94.2477 706.858

bc

circum=$(bc <<< "3.14159*30")

echo $circum
94.24770

或者同时使用bc

{ read circum; read area;}  < <(bc <<< "3.14159*30; 3.14159*15*15")

echo $circum $area
94.24770 706.85775

要了解所有shell语法和jiggery-pokery,请自行运行以下两个命令以查看它们产生的内容:

awk 'BEGIN{pi=3.14159;r=15;print 2*pi*r,pi*r*r}'

bc <<< "3.14159*30; 3.14159*15*15"

答案 1 :(得分:0)

哼...你忘了上学吗?当您用加减乘除时?

像在学校一样,可以用整数(在某些语言,例如bash中用“ /”和“%”)进行除法。

乘法仅使用“ +”。想象一下3.14 * 12,使它们成为整数,然后在末尾添加逗号,您将得到结果。 或者:3.14 / 2,将它们也设置为整数,很容易,您将得到除数并得到休息。手工制作,您将看到。不需要浮点计算器,我们的父亲没有浮点计算器,但是数千年前就可以计算PI。

也许我只是不明白这个问题:如果人们对我不理解乘或除法,他们就不理解加减。