Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在bash中用一个变量除以多个数_Bash_Floating Point_Integer - Fatal编程技术网

在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