はじめに
スペースキャデットの皆さん、ようこそ!あなたは今、恒星間輸送船「ネブラ・ノマド号」の貨物担当官になるための訓練を受けています。最初の任務は、船内にある 3 つの貨物室(ベイ)の簡易在庫管理システムを作成することです。シェルの配列(Array)を使用して在庫データを保持し、コマンドライン引数を受け取って特定の貨物室の内容を表示するプログラムを構築します。
スペースキャデットの皆さん、ようこそ!あなたは今、恒星間輸送船「ネブラ・ノマド号」の貨物担当官になるための訓練を受けています。最初の任務は、船内にある 3 つの貨物室(ベイ)の簡易在庫管理システムを作成することです。シェルの配列(Array)を使用して在庫データを保持し、コマンドライン引数を受け取って特定の貨物室の内容を表示するプログラムを構築します。
/home/labex/project ディレクトリにある既存のシェルスクリプト cargo_manifest.sh を開きます。/home/labex/project ディレクトリには、コードの枠組みが記述された cargo_manifest.sh が既に用意されています。forward_bay(前方室)、midship_bay(中央室)、aft_bay(後方室)という名前の 3 つの配列を作成します。$1 変数を使用して、どの貨物室の在庫を表示するかを判定します。echo 文を使用して、要求された貨物室の在庫一覧を表示します。スクリプト完成後、実行すると以下のような出力が得られるはずです:
$ ./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 文を用いた入力処理の実践を行いました。これらの基礎スキルはシェルスクリプトにおいて非常に重要であり、より高度な自動化タスクに取り組む際の土台となります。練習を続けて、本物の星間貨物を管理できるエキスパートを目指しましょう!