성간 화물 명세서

ShellBeginner
지금 연습하기

소개

우주 생도 여러분, 환영합니다! 여러분은 지금 성간 우주선 '네뷸라 노마드'의 화물 담당관이 되기 위한 훈련을 받고 있습니다. 첫 번째 과제는 우주선의 세 화물창을 위한 간단한 재고 시스템을 만드는 것입니다. 쉘 배열을 사용하여 재고 데이터를 저장하고, 명령줄 인수를 받아 특정 화물창의 상세 내역을 출력하는 기능을 구현하게 됩니다.

화물 명세서 스크립트 작성하기

과제

  1. /home/labex/project 디렉토리에 있는 기존 쉘 스크립트 파일인 cargo_manifest.sh를 엽니다.
  2. 누락된 부분을 채워 우주선의 화물 재고를 생성하고 표시하는 스크립트를 완성합니다.
  3. 다양한 인수를 사용하여 스크립트를 실행하고 각 화물창의 재고가 올바르게 출력되는지 확인합니다.

요구 사항

  1. cargo_manifest.sh 스크립트는 기본 코드 구조가 포함된 상태로 /home/labex/project 디렉토리에 이미 생성되어 있습니다.
  2. 다음 내용을 포함하여 스크립트를 완성하세요:
    • forward_bay, midship_bay, aft_bay라는 이름의 배열 세 개를 생성합니다.
    • 각 배열은 화물 항목을 나타내는 정확히 3 개의 문자열 요소를 포함해야 합니다.
    • $1 변수를 사용하여 어떤 화물창의 재고를 표시할지 확인합니다.
    • echo 문을 사용하여 요청된 화물창의 재고 목록을 출력합니다.
  3. 스크립트는 "forward", "midship", "aft" 중 하나의 인수를 받아야 합니다.
  4. 인수가 제공되지 않은 경우, 스크립트는 다음 메시지를 출력해야 합니다: "Please specify a cargo bay: forward, midship, or aft"
  5. 유효하지 않은 인수가 입력된 경우, 스크립트는 다음 메시지를 출력해야 합니다: "Invalid cargo bay. Choose forward, midship, or aft."

실행 예시

스크립트 작성을 마친 후 실행하면 다음과 같은 결과가 나와야 합니다:

$ ./cargo_manifest.sh forward
Forward Bay Inventory:
1. Space Suits
2. Oxygen Tanks
3. Repair Kits

$ ./cargo_manifest.sh midship
Midship Bay Inventory:
1. Food Supplies
2. Water Containers
3. Medical Equipment

$ ./cargo_manifest.sh aft
Aft Bay Inventory:
1. Spare Parts
2. Fuel Cells
3. Scientific Instruments

$ ./cargo_manifest.sh
Please specify a cargo bay: forward, midship, or aft

$ ./cargo_manifest.sh engine
Invalid cargo bay. Choose forward, midship, or aft.

테스트 통과를 위해 스크립트 내의 출력 문자열은 위 예시와 정확히 일치해야 합니다.

✨ 솔루션 확인 및 연습

요약

이번 챌린지에서는 쉘 배열과 기본적인 명령줄 인수 처리 방식을 활용하여 간단한 재고 관리 시스템을 만들어 보았습니다. 배열을 정의하고 요소에 접근하는 방법, 그리고 if 문을 사용하여 사용자 입력을 처리하는 과정을 연습했습니다. 이러한 기초 역량은 쉘 스크립팅의 핵심이며, 앞으로 더 복잡한 자동화 작업을 수행하는 데 밑거름이 될 것입니다. 계속해서 정진하여 실제 성간 화물 시스템을 능숙하게 관리할 수 있는 전문가가 되길 바랍니다!