웹사이트 검색

Linux에서 GNU bc(기본 계산기)를 사용하는 방법


bc(기본 계산기)는 간단한 과학용 또는 금융 계산기에서 기대하는 모든 것을 제공하는 명령줄 유틸리티입니다. 문장의 대화형 실행으로 임의의 정밀도 숫자를 지원하는 언어이며 C 프로그래밍 언어와 유사한 구문을 가지고 있습니다.

이 문서에 설명된 대로 일반적으로 수학 스크립팅 언어 또는 대화형 수학 셸로 사용할 수 있습니다.

시스템에 bc가 없으면 다음과 같이 배포용 패키지 관리자를 사용하여 설치할 수 있습니다.

sudo apt install bc	#Debian/Ubuntu
sudo yum install bc	#RHEL/CentOS
sudo dnf install bc	#Fedora 22+

대화형 모드에서 bc를 열려면 명령 프롬프트에 bc 명령을 입력하고 표현식 계산을 시작하면 됩니다.

bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

10 + 5
15

1000 / 5
200

(2 + 4) * 2
12

bc는 임의의 정밀도로 작동할 수 있지만 실제로 기본값은 소수점 이하 0자리입니다. 예를 들어 3/5 표현식은 0이 됩니다. 다음 출력과 같습니다.

bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

3 / 5
0

-l 플래그를 사용하여 기본 배율(소수점 이하 자릿수)을 20으로 설정하고 표준 수학 라이브러리도 정의할 수 있습니다. 이제 이전 표현식을 다시 한 번 실행해 보세요.

bc -l
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

3 / 5
.60000000000000000000

5 / 7
.71428571428571428571

또는 그림과 같이 bc를 연 후 배율을 지정할 수 있습니다.

bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

scale=0; 8%5
3

scale=1; 8%5
0

scale=20; 8%5
0

scale=20; 8%11
.00000000000000000008

또한 bash, ksh, csh 등의 일반 셸에 대해 다음 명령을 사용하여 표시된 대로 bc에 인수를 전달할 수도 있습니다.

bc -l <<< "2*6/5"

2.40000000000000000000

bc를 비대화식으로 사용하는 방법을 살펴보겠습니다. 이는 쉘 스크립팅 목적에도 유용합니다.

echo '4/2' | bc
echo 'scale=3; 5/4' | bc
ans=$(echo "scale=3; 4 * 5/2;" | bc)
echo $ans

POSIX bc 언어를 정확하게 처리하려면 -s 플래그를 사용하고 POSIX bc 확장에 대한 경고를 활성화하려면 -w 옵션을 다음과 같이 사용하세요. 표시됩니다.

bc -s
bc -w

자세한 내용은 bc 매뉴얼 페이지를 참조하세요.

man bc

지금은 여기까지입니다! bc(기본 계산기)는 간단한 과학용 또는 금융 계산기에서 기대하는 모든 것을 제공하는 명령줄 유틸리티입니다. 질문이 있으시면 아래 댓글 섹션을 통해 문의해 주세요.