Unix / Linux-シェル配列の使用

この章では、Unixでシェル配列を使用する方法について説明します。シェル変数は、単一の値を保持するのに十分な能力があります。これらの変数はスカラー変数と呼ばれます。

シェルは、と呼ばれる別のタイプの変数をサポートします array variable。これは、同時に複数の値を保持できます。配列は、変数のセットをグループ化する方法を提供します。必要な変数ごとに新しい名前を作成する代わりに、他のすべての変数を格納する単一の配列変数を使用できます。

シェル変数について説明したすべての命名規則は、配列の命名時に適用できます。

配列値の定義

配列変数とスカラー変数の違いは次のように説明できます。

さまざまな学生の名前を変数のセットとして表現しようとしているとします。個々の変数はそれぞれ、次のようなスカラー変数です。

NAME01="Zara"
NAME02="Qadir"
NAME03="Mahnaz"
NAME04="Ayan"
NAME05="Daisy"

単一の配列を使用して、上記のすべての名前を格納できます。以下は、配列変数を作成する最も簡単な方法です。これは、インデックスの1つに値を割り当てるのに役立ちます。

array_name[index]=value

ここで、array_nameは配列の名前、indexは設定する配列内のアイテムのインデックス、valueはそのアイテムに設定する値です。

例として、次のコマンド-

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"

を使用している場合 ksh シェル、これが配列初期化の構文です-

set -A array_name value1 value2 ... valuen

を使用している場合 bash シェル、これが配列初期化の構文です-

array_name=(value1 ... valuen)

配列値へのアクセス

配列変数を設定したら、次のようにアクセスします-

${array_name[index]}

ここで、array_nameは配列の名前であり、indexはアクセスされる値のインデックスです。以下は、概念を理解するための例です-

#!/bin/sh

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Index: ${NAME[0]}"
echo "Second Index: ${NAME[1]}"

上記の例では、次の結果が生成されます-

$./test.sh
First Index: Zara
Second Index: Qadir

次のいずれかの方法で、配列内のすべてのアイテムにアクセスできます。

${array_name[*]}
${array_name[@]}

ここに array_name は、関心のある配列の名前です。次の例は、概念を理解するのに役立ちます。

#!/bin/sh

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Method: ${NAME[*]}"
echo "Second Method: ${NAME[@]}"

上記の例では、次の結果が生成されます-

$./test.sh
First Method: Zara Qadir Mahnaz Ayan Daisy
Second Method: Zara Qadir Mahnaz Ayan Daisy