사칙연산 계산기 만들기

ShellBeginner
지금 연습하기

소개

이번 챌린지에서는 쉘 스크립트를 활용해 기본적인 사칙연산 계산기를 만들어 봅니다. 이를 통해 쉘 스크립트에서 여러 개의 함수를 정의하고 호출하는 핵심 원리를 깊이 있게 이해할 수 있습니다.

이 콘텐츠는 가이드형 실습 (Guided Lab) 과 달리, 제공된 단계에 의존하지 않고 스스로 과제를 해결해야 하는 챌린지입니다. 챌린지는 다소 난이도가 있을 수 있습니다. 해결이 어렵다면 Labby 와 상담하거나 모범 답안을 확인해 보세요. 통계에 따르면 이 챌린지는 초급 수준이며, 98%의 통과율과 97%의 만족도를 기록하고 있습니다.

계산기 함수 구현하기

과제

  1. ~/project 디렉토리로 이동합니다. 해당 디렉토리에는 일부 코드가 작성된 calculator.sh 파일이 준비되어 있습니다.
  2. calculator.sh 파일을 열어 add, subtract, multiply, divide 네 가지 함수를 완성하세요.

요구 사항

  • ~/project 디렉토리에 기본 구조가 잡힌 calculator.sh 스크립트가 이미 생성되어 있습니다.
  • 다음 함수들을 완성해야 합니다:
    • add: 두 개의 인자를 받아 그 합을 출력합니다.
    • subtract: 두 개의 인자를 받아 첫 번째 값에서 두 번째 값을 뺀 결과를 출력합니다.
    • multiply: 두 개의 인자를 받아 그 곱을 출력합니다.
    • divide: 두 개의 인자를 받아 첫 번째 값을 두 번째 값으로 나눈 결과를 출력합니다. 이때 0 으로 나누는 경우를 반드시 처리해야 합니다.
  • 각 함수는 두 개의 매개변수를 전달받아 결과를 echo로 출력해야 합니다.
  • 함수를 호출하는 스크립트의 메인 로직은 이미 작성되어 있습니다.
  • 주의 사항: case 문 내에서 모든 연산 기호 (+, -, *, /) 는 쉘이 특수 문자로 해석하지 않도록 따옴표로 감싸야 합니다. 특히 * 기호를 따옴표 없이 사용하면 와일드카드로 인식되어 모든 입력과 매칭되는 예기치 않은 동작이 발생할 수 있습니다.

실행 예시

완성된 스크립트는 다음과 같이 동작해야 합니다:

$ ./calculator.sh
Enter first number: 10
Enter second number: 5
Enter operation (+, -, *, /): +
Result: 15

$ ./calculator.sh
Enter first number: 10
Enter second number: 5
Enter operation (+, -, *, /): -
Result: 5

$ ./calculator.sh
Enter first number: 10
Enter second number: 5
Enter operation (+, -, *, /): *
Result: 50

$ ./calculator.sh
Enter first number: 10
Enter second number: 5
Enter operation (+, -, *, /): /
Result: 2

$ ./calculator.sh
Enter first number: 10
Enter second number: 0
Enter operation (+, -, *, /): /
Error: Division by zero is not allowed.

테스트 통과를 위해 스크립트 내의 문자열은 위 예시와 동일하게 유지해야 합니다.

✨ 솔루션 확인 및 연습

요약

이 챌린지에서는 쉘 스크립트를 사용하여 사칙연산 계산기를 직접 만들어 보았습니다. 매개변수를 받아 연산을 수행하고 결과를 반환하는 여러 함수를 정의하는 연습을 했습니다. 이 과정을 통해 쉘 스크립트의 기본적인 함수 선언 및 활용법을 익혔으며, 간단한 계산 로직과 예외 처리 기법을 실제 코드에 적용해 보았습니다.