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
答案 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。
也许我只是不明白这个问题:如果人们对我不理解乘或除法,他们就不理解加减。