この記事では、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
コメントを残す