在bash中用一个变量除以多个数
如果用户输入周长,我需要计算圆的面积。 这就是我所拥有的,但它不起作用:在bash中用一个变量除以多个数,bash,floating-point,integer,Bash,Floating Point,Integer,如果用户输入周长,我需要计算圆的面积。 这就是我所拥有的,但它不起作用: let radius=$circumference/(2*3.1415) 及 正如评论所指出的,bash不会进行浮动。我会尝试一个简单的echo+bc解决方案,但您也可以使用awk和其他解决方案 radius=$(echo $circumference/\(2*3.1415\) | bc -l) 及 不优雅或不特别便携,但它可以工作 编辑:我创建了一个test.sh文件: #!/bin/bash circumfer
let radius=$circumference/(2*3.1415)
及
正如评论所指出的,bash不会进行浮动。我会尝试一个简单的
echo+bc
解决方案,但您也可以使用awk
和其他解决方案
radius=$(echo $circumference/\(2*3.1415\) | bc -l)
及
不优雅或不特别便携,但它可以工作
编辑:我创建了一个test.sh
文件:
#!/bin/bash
circumference=4
radius=$(echo $circumference/\(2*3.1415\) | bc -l)
area=$(echo 3.1415*$radius*$radius | bc -l)
echo $radius $area
当我在终端上执行bash test.sh
时,我得到:
.63663854846410950183 1.27327709692821900365
bash
无法执行浮点运算。检查一下,为什么你要除以π,然后马上乘以π?圆的面积是周长的一半乘以半径(就像三角形一样,这是相同的公式)。最好使用$(cmd)
而不是`cmd`
,检查此项。只是一个挑剔的问题,你也可以使用重定向而不是echo
:bc-l每当我运行脚本时,我都会收到一个语法错误。你刚才复制/粘贴了上面的内容吗?另外,您是否正在使用bash
?我将在上面的答案中添加一个小脚本,您可以尝试一下。
#!/bin/bash
circumference=4
radius=$(echo $circumference/\(2*3.1415\) | bc -l)
area=$(echo 3.1415*$radius*$radius | bc -l)
echo $radius $area
.63663854846410950183 1.27327709692821900365