bc 에서 변수 사용하기
이 단계에서는 bc 내에서 변수를 사용하여 계산을 더욱 유연하고 강력하게 만드는 방법을 배우겠습니다. bc 계산기를 사용하면 변수를 정의하고 여러 계산에서 재사용할 수 있습니다.
bc 대화형 모드에서 변수 사용하기
먼저, bc 대화형 모드에서 변수를 직접 사용하는 방법을 살펴보겠습니다.
- 대화형 모드에서
bc 계산기를 시작합니다.
bc
- 변수를 정의하고 이를 사용하여 계산을 수행합니다.
x = 10
x + 5
x * 2
다음과 같은 출력을 볼 수 있습니다.
15
20
- 여러 변수를 정의하고 함께 사용할 수 있습니다.
y = 7
x + y
x * y
출력은 다음과 같습니다.
17
70
Ctrl+D를 누르거나 quit을 입력하여 대화형 모드를 종료합니다.
bc 변수를 사용한 스크립트 생성
이제 bc 계산에서 변수를 사용하는 방법을 보여주는 스크립트를 만들어 보겠습니다.
- 아직 프로젝트 디렉토리에 있지 않다면, 프로젝트 디렉토리로 이동합니다.
cd ~/project
variable_calc.sh라는 새 스크립트 파일을 생성합니다.
touch variable_calc.sh
- nano 편집기로 파일을 엽니다.
nano variable_calc.sh
- 파일에 다음 내용을 추가합니다.
#!/bin/zsh
## Script to demonstrate using variables in bc
## Define input values
radius=5
height=10
## Calculate cylinder volume (π * r² * h)
volume=$(echo "scale=2; 3.14159 * $radius * $radius * $height" | bc)
## Calculate cylinder surface area (2π * r² + 2π * r * h)
surface_area=$(echo "scale=2; 2 * 3.14159 * $radius * $radius + 2 * 3.14159 * $radius * $height" | bc)
## Display results
echo "Cylinder properties with radius $radius and height $height:"
echo "Volume: $volume cubic units"
echo "Surface Area: $surface_area square units"
이 스크립트는 다음을 수행합니다.
- 원통의 반지름과 높이에 대한 변수를 정의합니다.
- 공식 π r² h 를 사용하여 부피를 계산합니다.
- 공식 2π r² + 2π r * h 를 사용하여 표면적을 계산합니다.
- 적절한 단위를 사용하여 결과를 표시합니다.
-
Ctrl+O, Enter를 눌러 파일을 저장하고 Ctrl+X로 nano 를 종료합니다.
-
스크립트를 실행 가능하게 만듭니다.
chmod +x variable_calc.sh
- 스크립트를 실행합니다.
./variable_calc.sh
다음과 유사한 출력을 볼 수 있습니다.
Cylinder properties with radius 5 and height 10:
Volume: 785.39 cubic units
Surface Area: 471.23 square units
bc 내부에서 변수 사용하기
또한 여러 줄 방식을 사용하여 bc 내에서 완전히 변수를 정의하고 사용할 수 있습니다. 이를 보여주는 다른 스크립트를 만들어 보겠습니다.
- 새 파일을 생성합니다.
nano bc_variables.sh
- 다음 내용을 추가합니다.
#!/bin/zsh
## Script to demonstrate using variables within bc
bc << EOF
scale=2
radius = 5
height = 10
pi = 3.14159
## Calculate cylinder volume
volume = pi * radius^2 * height
print "Volume: ", volume, " cubic units\n"
## Calculate cylinder surface area
surface_area = 2 * pi * radius^2 + 2 * pi * radius * height
print "Surface Area: ", surface_area, " square units\n"
EOF
이 스크립트는 다음을 수행합니다.
- "here document" (EOF) 를 사용하여 여러 줄을
bc로 보냅니다.
bc 자체 내에서 모든 변수를 정의합니다.
- 이러한 변수를 사용하여 계산을 수행합니다.
bc의 print 명령을 사용하여 결과를 표시합니다.
- 파일을 저장하고 실행 가능하게 만든 다음 실행합니다.
chmod +x bc_variables.sh
./bc_variables.sh
출력은 이전 스크립트와 유사하지만 bc에서 변수를 사용하는 다른 방식을 보여줍니다.