我正在尝试编写一个代码,使用 pi 和周长计算圆的半径和面积。当我尝试运行代码时,我收到一条错误消息:
main.sh: line 5: bc: command not found
main.sh: line 7: bc: command not found
您能否告诉我哪里出了问题,并帮助我修复我的代码?
代码:
#!/bin/bash
pi=3.14;
circumference=5;
echo "$circumference"
radius=$(echo "$circumference" \* 2 \* "$pi" |bc -l);
echo "$radius"
area=$(echo "$pi" \* "$radius" \* "$radius" |bc -l);
echo "$area"
echo "The radius of a circle is $radius";
echo "The area of a circle is $area";
exit
答案1
OP 提出了一个合理的脚本,但甚至无法测试它,因为他的课程让他陷入了一个损坏的 Linux 副本
可能不是损坏的副本Linux 的。
通过执行以下操作,成为班级英雄
bc-1.03.tar.gz
从以下位置下载程序源https://ftp.gnu.org/gnu/bc/- 将该 .tar.gz 文件上传到您正在使用的服务器。
tar -xf bc-1.03.tar.gz
cd bc-1.03
./configure
make
bc
然后,当前目录中将提供一个工作可执行文件。bc
只需在 bash 脚本中引用此位置即可,示例如下。- 打开该文件和文件夹的权限,并让您的同学也运行它。
#!/bin/bash
pi=3.14;
circumference=5;
echo "$circumference"
radius=$(echo "$circumference" \* 2 \* "$pi" |/home/ron/bc-1.03/bc -l);
echo "$radius"
area=$(echo "$pi" \* "$radius" \* "$radius" |/home/ron/bc-1.03/bc -l);
echo "$area"
echo "The radius of a circle is $radius";
echo "The area of a circle is $area";
exit
答案2
我正在为我的班级运行 putty,并且我在 atlas 服务器上
在 putty 的提示符下,输入which bc
它应该回应/usr/bin/bc
如果它显示未找到,则该程序可能bc - An arbitrary precision calculator language
未安装在您正在使用的系统上。
如果你这样做,rpm -qa | grep bc
你应该会看到类似的东西bc-1.06.95-13.el7.x86_64
。
可能会报告一些事情,因为它会模式匹配许多其他东西,例如 libc 和 glibc 和 bcrypt 以及其他仅将字母 b 和 c 放在一起的东西。
如果bc
已安装,并且应该可以找到,/usr/bin/bc
然后考虑将其完整路径放入/usr/bin/bc
您的 bash 脚本中。 Linux 存在安全方面的问题,其中 PATH 环境变量在 bash 脚本中受到限制,但/usr/bin
绝对不会被阻止或遗漏,因此很可能 bc 没有安装在您所在的 atlas 服务器上。
您发布的代码没有任何问题。正如发布的那样,它在 RHEL 7 上运行得很好,输出是
5
31.40
3095.914400
The radius of a circle is 31.40
The area of a circle is 3095.914400
答案3
根据你的代码,半径比圆周大。
尝试这个:
#!/bin/bash
pi=3.14;
circumference=5;
echo "$circumference"
radius=$(echo "$circumference" / 2 / "$pi" |bc -l);
echo "$radius"
area=$(echo "$pi" \* "$radius" \* "$radius" |bc -l);
echo "$area"
echo "The radius of a circle is $radius";
echo "The area of a circle is $area";
exit
答案4
只需输入
sudo apt install bc
它应该安装bc
在您的计算机上,但请确保您是管理员