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

标签 linux bash

r=15
phi=3.14
d=30

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

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

当我运行代码时,显示错误“语法错误:无效算术运算符(错误标记为“.14”)。我在谷歌上搜索了与此问题相关的内容。解决方案使用 bc(bash 计算器)。我的问题是还有其他解决方案吗?

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

谢谢

最佳答案

我会使用 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"

关于linux - 使用bash脚本计算圆的面积和半径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41138175/

相关文章:

mysql - 我尝试创建 docker 镜像时出现问题

bash - 在不使用bash -c的docker run中使用容器环境变量

bash - IFS 在 bash 中按预期工作,但在 zsh 中无法正常工作

linux - 如何在 linux 中构建 Tkinter GUI,就像在 window 中构建 exe 一样?

c++ - linux套接字只接收第一 block 数据

windows - symfony2 Doctrine windows 到 linux 服务器迁移

linux - tiny6410 friendlyarm 连接到电容式 lcd 但触摸在 linux 中不起作用

linux - 为什么嵌套的screen session中只有一个SCREEN进程?

linux - 我可以删除/var/log/btmp和/var/log/auth.log文件吗?

linux - BASH 使用 FIND 和 SED 在目录中的所有文件中查找和替换