はじめに
この実験では、シェルプログラミングにおける配列(Arrays)の扱い方を学びます。配列とは、複数の値を一つの名前でまとめて保存できるデータ構造のことで、これを利用することでデータの整理や操作が格段に容易になります。
具体的には、配列の初期化、要素の追加、インデックス(添字)による要素へのアクセス、そして配列内の要素数の確認方法を習得します。これらの知識は、より高度なシェルスクリプトの作成やデータ処理タスクにおいて不可欠な基礎となります。
この実験では、シェルプログラミングにおける配列(Arrays)の扱い方を学びます。配列とは、複数の値を一つの名前でまとめて保存できるデータ構造のことで、これを利用することでデータの整理や操作が格段に容易になります。
具体的には、配列の初期化、要素の追加、インデックス(添字)による要素へのアクセス、そして配列内の要素数の確認方法を習得します。これらの知識は、より高度なシェルスクリプトの作成やデータ処理タスクにおいて不可欠な基礎となります。
まずは、配列の操作を記述するための新しいシェルスクリプトファイルを作成することから始めましょう。
WebIDE のターミナルを開きます。
プロジェクトディレクトリに移動します:
cd ~/project
touch コマンドを使用して、arrays.sh という名前の新しいファイルを作成します:
touch arrays.sh
WebIDE で arrays.sh ファイルを開きます。
スクリプトファイルが用意できたので、まずは 3 つの空の配列を初期化してみましょう。
arrays.sh ファイルに以下のコードを追加してください:
#!/bin/bash
## 空の配列を初期化
NUMBERS=()
STRINGS=()
NAMES=()
このコードの内容を解説します:
#!/bin/bash はシバン(shebang)と呼ばれます。これは、このスクリプトが Bash シェルによって実行されるべきであることをシステムに伝えます。NUMBERS、STRINGS、NAMES という 3 つの空の配列を作成しています。() という構文を使うことで、中身が空の配列を初期化できます。空の配列が作成できたので、次に要素を追加してみましょう。
arrays.sh ファイルの配列初期化コードの下に、以下のコードを追加してください:
## NUMBERS 配列に要素を追加
NUMBERS+=(1)
NUMBERS+=(2)
NUMBERS+=(3)
## STRINGS 配列に要素を追加
STRINGS+=("hello")
STRINGS+=("world")
## NAMES 配列に要素を追加
NAMES+=("John")
NAMES+=("Eric")
NAMES+=("Jessica")
このコードの動作は以下の通りです:
+= 演算子を使用して、配列の末尾に要素を追加(アペンド)しています。NUMBERS には、整数 1、2、3 を追加しています。STRINGS には、文字列 "hello" と "world" を追加しています。NAMES には、"John"、"Eric"、"Jessica" の 3 つの名前を追加しています。配列を扱う際によく行われる操作の一つに、配列にいくつの要素が含まれているかを調べるというものがあります。NAMES 配列を使って確認してみましょう。
arrays.sh ファイルに以下のコードを追加してください:
## NAMES 配列の要素数を取得
NumberOfNames=${#NAMES[@]}
この行では以下の処理を行っています:
${#NAMES[@]} は、NAMES 配列内の要素の総数を返します。NumberOfNames という変数に格納しています。@ 記号は、配列のすべての要素を参照することを意味します。NAMES の前にある # 記号は、要素をカウントするようにシェルに指示します。次に、NAMES 配列の特定の要素にアクセスしてみましょう。ここでは 2 番目の名前を取得します。
arrays.sh ファイルに以下のコードを追加してください:
## NAMES 配列の2番目の名前にアクセス
second_name=${NAMES[1]}
このコードの解説:
${NAMES[1]} を使って、NAMES 配列の 2 番目の要素にアクセスしています。[1] を指定することで 2 番目の要素を取得できます。second_name という変数に格納しています。最後に、これまでの操作結果を確認するために、配列と変数の内容を出力するコードを追加しましょう。
arrays.sh ファイルの末尾に以下のコードを追加してください:
## 配列と変数を出力
echo "NUMBERS array: ${NUMBERS[@]}"
echo "STRINGS array: ${STRINGS[@]}"
echo "The number of names listed in the NAMES array: $NumberOfNames"
echo "The second name on the NAMES list is: $second_name"
このコードの動作は以下の通りです:
echo コマンドを使用して、コンソールに文字列を出力します。${NUMBERS[@]} と ${STRINGS[@]} は、それぞれの配列の全要素を出力します。NumberOfNames と second_name 変数の値を出力します。スクリプトが完成したので、実際に実行して結果を確認しましょう。
ターミナルで、正しいディレクトリにいることを確認します:
cd ~/project
スクリプトに実行権限を付与します:
chmod +x arrays.sh
スクリプトを実行します:
./arrays.sh
以下のような出力が表示されるはずです:
NUMBERS array: 1 2 3
STRINGS array: hello world
The number of names listed in the NAMES array: 3
The second name on the NAMES list is: Eric
この出力から、配列操作が正しく行われたことがわかります:
NUMBERS 配列には 1, 2, 3 が含まれています。STRINGS 配列には "hello" と "world" が含まれています。NAMES 配列の要素数が正しく 3 とカウントされています。この実験では、シェルスクリプトにおける配列操作の基本を学びました。配列の初期化、要素の追加、特定の要素へのアクセス、そして要素数の取得方法を実践しました。これらのスキルは、データのリストを扱ったり、複数の項目に対して一括で処理を行ったりするような、より高度なシェルスクリプトを作成する際に非常に重要です。配列を活用することで、シェルスクリプト内でのデータ管理が効率化され、より整理されたコードを書くことができるようになります。