소개
이 실습에서는 Shell 프로그래밍에서 기본적인 산술 연산을 수행하는 방법을 배웁니다. 과일 바구니의 총비용을 계산하는 간단한 스크립트를 작성하면서 Bash 에서 변수와 산술 표현식을 사용하는 방법을 익히게 됩니다. 이 과정은 초보자를 위해 설계되었으므로 각 단계를 상세히 설명해 드립니다.
이 실습에서는 Shell 프로그래밍에서 기본적인 산술 연산을 수행하는 방법을 배웁니다. 과일 바구니의 총비용을 계산하는 간단한 스크립트를 작성하면서 Bash 에서 변수와 산술 표현식을 사용하는 방법을 익히게 됩니다. 이 과정은 초보자를 위해 설계되었으므로 각 단계를 상세히 설명해 드립니다.
먼저 새로운 Bash 스크립트 파일을 만드는 것부터 시작해 보겠습니다.
WebIDE 에서 터미널을 엽니다. labex@ubuntu:~/project$와 같은 형태의 명령 프롬프트가 보일 것입니다.
스크립트는 project 디렉토리에 생성하겠습니다. 기본적으로 이 디렉토리에 위치해 있겠지만, 확실히 하기 위해 cd 명령어를 사용합니다.
cd ~/project
이 명령어는 현재 작업 디렉토리를 /home/labex/project로 변경합니다.
이제 fruit_basket.sh라는 이름의 새 파일을 만듭니다. 빈 파일을 생성할 때는 touch 명령어를 사용합니다.
touch fruit_basket.sh
WebIDE 에디터에서 fruit_basket.sh 파일을 엽니다. 왼쪽 파일 탐색기에서 파일 이름을 클릭하면 됩니다.
모든 Bash 스크립트는 "shebang" 라인으로 시작해야 합니다. 이 라인은 시스템에 이 스크립트를 실행할 때 어떤 인터프리터를 사용할지 알려줍니다. 파일의 맨 첫 줄에 다음 내용을 추가하세요.
#!/bin/bash
이 줄은 해당 스크립트가 Bash 인터프리터로 실행되어야 함을 명시합니다.
스크립트 파일이 준비되었으니, 이제 각 과일과 바구니의 가격을 저장할 변수를 정의해 보겠습니다.
fruit_basket.sh 파일에 다음 내용을 추가하세요.
#!/bin/bash
## 가격 정의
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1
작성한 내용의 의미는 다음과 같습니다.
= 기호 주변에 공백이 있어서는 안 됩니다.COST_PINEAPPLE=50은 파인애플 하나가 50 센트임을 의미합니다.가격 정의가 끝났으므로, 이제 파인애플 1 개, 바나나 2 개, 수박 3 개가 담긴 과일 바구니의 총비용을 계산해 보겠습니다.
fruit_basket.sh 파일에 다음 줄을 추가하세요.
#!/bin/bash
## 가격 정의
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1
## 총비용 계산
TOTAL=$((COST_PINEAPPLE + (COST_BANANA * 2) + (COST_WATERMELON * 3) + COST_BASKET))
새로 추가한 줄을 살펴봅시다.
$(( ))는 Bash 에서 산술 연산을 수행하기 위한 문법입니다. 이 이중 괄호 안에 있는 모든 내용은 산술 표현식으로 처리됩니다.$ 기호를 붙이지 않아도 됩니다.COST_PINEAPPLE: 파인애플 1 개의 가격(COST_BANANA * 2): 바나나 2 개의 가격(COST_WATERMELON * 3): 수박 3 개의 가격COST_BASKET: 바구니 자체의 가격TOTAL 변수에 저장됩니다.참고: Bash 는 정수 산술 연산만 지원합니다. 만약 달러와 센트 사이의 소수점 계산이 필요하다면 bc와 같은 별도의 도구를 사용해야 합니다.
계산 결과를 확인하기 위해 총비용을 화면에 출력해야 합니다. fruit_basket.sh 파일에 다음 내용을 추가하세요.
#!/bin/bash
## 가격 정의
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1
## 총비용 계산
TOTAL=$((COST_PINEAPPLE + (COST_BANANA * 2) + (COST_WATERMELON * 3) + COST_BASKET))
## 총비용 출력
echo "Total Cost is $TOTAL cents"
새로 추가한 줄의 의미는 다음과 같습니다.
echo는 터미널에 텍스트를 출력하는 명령어입니다.$TOTAL 부분은 예외입니다.$가 붙으면, Bash 는 이를 해당 변수의 실제 값으로 교체합니다. 이를 변수 확장 (variable expansion) 이라고 합니다.TOTAL 값이 128 이라면, 출력 결과는 "Total Cost is 128 cents"가 됩니다.스크립트 작성이 완료되었습니다. 이제 이 파일을 실행 가능한 상태로 만든 뒤 실행해 보겠습니다.
터미널에서 chmod 명령어를 사용하여 스크립트에 실행 권한을 부여합니다.
chmod +x ~/project/fruit_basket.sh
이 명령어는 파일의 모드를 변경하여 사용자에게 실행 (x) 권한을 추가합니다.
이제 스크립트를 실행합니다.
~/project/fruit_basket.sh
이 명령어는 Bash 에게 우리가 만든 스크립트를 실행하도록 지시합니다. ~/project/ 부분은 스크립트가 위치한 경로를 나타냅니다.
다음과 같은 출력 결과가 나타나야 합니다.
Total Cost is 128 cents
이 결과는 과일 바구니 (파인애플 1 개, 바나나 2 개, 수박 3 개, 바구니 포함) 의 총비용이 128 센트임을 보여줍니다.
이 실습에서는 Shell 프로그래밍에서 기본 연산자를 사용하여 산술 연산을 수행하는 방법을 배웠습니다. 개별 가격에 대한 변수를 정의하고 산술 표현식을 사용하여 총합을 구하는 Bash 스크립트를 직접 작성해 보았습니다. 또한 스크립트에 실행 권한을 부여하고 명령줄에서 실행하는 방법도 익혔습니다.
기억해야 할 주요 사항은 다음과 같습니다.
#!/bin/bash) 으로 시작합니다.= 기호 주변에 공백을 두지 않습니다.$(( )) 내부에서 수행됩니다.echo 명령어를 사용합니다.chmod +x 명령어로 실행 권한을 부여해야 합니다.이러한 기술은 더 복잡한 쉘 스크립팅 작업을 위한 기초가 되며, 스크립트 내에서 계산이 필요한 다양한 상황에 적용할 수 있습니다.