在bash shell

时间:2016-07-28 07:54:32

标签: linux bash shell

我需要编写一个脚本来查找圆的半径,然后在给出圆周时找到该区域

#!/bin/bash
echo -n "Enter the circumference: "
read CIRC
 PI=3.14
let RAD=$(($CIRC/((2*$PI )) )) 
let  AREA=$PI * $RAD * $RAD
echo "The area of a circle is: "$AREA""

公式是:     RADIUS = CIRCUMFERENCE /(2 * PI) 问题是我不能使这个公式工作,因为bash不接受十进制除法 我在那里读了很多答案,但仍然无法得到我想要的东西

我有类似

的东西
let RAD=$(($CIRC/((2*$PI )) )) 

尝试了很多不同的变种,使用了bc -l 但仍然无法正确行事并且始终存在错误

3 个答案:

答案 0 :(得分:1)

echo -n "Enter the circumference: "
read CIRC
PI=3.14
RAD=`bc -l <<< "$CIRC/(2*$PI)"`
echo $RAD
AREA=`bc  -l <<< "$PI*$RAD*$RAD"`
echo "The area of a circle is: "$AREA""

答案 1 :(得分:0)

试试这个;

#!/bin/bash
echo -n "Enter the circumference: "
read CIRC

PI=3.14
RAD=$(echo $CIRC \/ \(2\*$PI\)| bc -l)
AREA=$(echo $PI \* $RAD \* $RAD| bc -l)

echo "The area of a circle is: "$AREA""

答案 2 :(得分:0)

awk的替代解决方案;

#!/bin/bash
echo -n "Enter the circumference: "
read CIRC
awk -v CIRC=$CIRC " BEGIN { PI=3.14; RAD=CIRC/(2*PI); AREA=PI*RAD*RAD; print \"The area of a circle is: \",AREA}"