Unix / Linux Shell配列の使い方

この記事では、Unixでshell配列を使用する方法について説明します。 Shell変数は、単一の値を保持できます。 これらの変数はスカラー変数と呼ばれます。

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

配列に名前を付けるときは、Shell変数に適用されるすべての名前付け規則が適用されます。

配列値を定義する

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

仮に、各学生の名前を変数のセットで表現します。 その場合には、各変数はスカラー変数です。

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

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

array_name[index]=value

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

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

ksh shellを使用している場合、以下のは配列初期化の構文です。

set -A array_name value1 value2 ... valuen

bash shellを使用している場合、以下のは配列初期化の構文です。

array_name=(value1 ... valuen)

配列値にアクセスする

配列変数を設定した後、次のようにアクセスできます。

${array_name[index]}

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

#!/bin/sh

NAME[0]="Zara"
NAME[1]="Ceodata"
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: Ceodata

以下の方法で、配列内のすべてのアイテムにアクセスできます。

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

array_nameは、気になる配列の名前です。 以下の実例は、概念を理解するのに役立ちます。

#!/bin/sh

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

上記の実例では、以下の結果が生成されます。

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です