Манифест межзвездного груза

ShellBeginner
Практиковаться сейчас

Введение

Добро пожаловать, космический кадет! Вы проходите обучение на должность офицера по грузовым операциям на межзвездном корабле «Nebula Nomad». Ваша первая задача — создать простую систему инвентаризации для трех грузовых отсеков корабля. Вы будете использовать массивы в shell для хранения данных об имуществе и принимать аргументы командной строки для вывода содержимого конкретного грузового отсека.

Создание скрипта грузового манифеста

Задачи

  1. Откройте существующий shell-скрипт с именем cargo_manifest.sh в директории /home/labex/project.
  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.

Строковые значения в скрипте должны в точности соответствовать примерам, чтобы избежать ошибок при автоматическом тестировании.

✨ Проверить решение и практиковаться

Резюме

В этом испытании вы создали простую систему управления инвентарем, используя массивы shell и базовую обработку аргументов командной строки. Вы закрепили навыки определения массивов, доступа к их элементам и использования операторов if для обработки пользовательского ввода. Эти фундаментальные навыки критически важны для написания скриптов и помогут вам в решении более сложных задач по автоматизации. Продолжайте практиковаться, и совсем скоро вы будете готовы управлять настоящими межзвездными грузами!