파이와 원주를 이용하여 원의 반지름과 면적을 계산하는 코드를 작성하려고 합니다. 코드를 실행하려고 하면 다음과 같은 오류 메시지가 나타납니다.
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 복사본에 붙어 있었기 때문에 테스트조차 할 수 없었습니다.
아마손상된 사본리눅스.
다음을 수행하여 클래스 영웅이 되십시오
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
저는 수업을 위해 퍼티를 실행하고 있고 아틀라스 서버에 있습니다.
퍼티 프롬프트에서 다음을 입력합니다.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가 설치되어 있지 않을 수 있습니다.
게시한 코드에는 아무런 문제가 없습니다.. 게시된 대로 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
컴퓨터에 설치해야 하지만 관리자인지 확인하세요.