Unix-using-arrays

提供:Dev Guides
移動先:案内検索

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

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

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

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

配列値の定義

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

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

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