この章では、Unixでのシェル配列の使い方について説明します。シェル変数は単一の値を保持するのに使います。これらの変数はスカラ変数と呼ばれます。
シェルは、配列変数と呼ばれる別の種類の変数をサポートしています。これは、同時に複数の値を保持することができます。配列は、一連の変数をグループ化する方法を提供します。必要な各変数の新しい名前を作成する代わりに、他のすべての変数を格納する単一の配列変数を使用できる機能を持ち合わせています。
箱の出し入れ、アレイですね、
シェル変数について説明したすべての命名規則は、配列の命名中に適用できます。
Contents
配列値の定義
配列変数とスカラ変数の違いは、次のように説明できます。
さまざまな生徒の名前を変数の集合として表現しようとしているとします。個々の変数のそれぞれは、次のようなスカラ変数です。
NAME01="tanaka" NAME02="sato" NAME03="suzuki" NAME04="saito" NAME05="tsutsugo"
1つの配列を使用して上記の名前をすべて格納できます。以下は、配列変数を作成する最も簡単な方法です。これは、そのインデックスの1つに値を割り当てるのに役立ちます。
array_name[index]=value
ここでARRAY_NAMEは、配列の名前があり、インデックスが設定したい配列内のアイテムのインデックスであり、その値は、あなたがその項目に設定する値です。
例として、以下のコマンド –
NAME[0]="tanaka" NAME[1]="sato" NAME[2]="suzuki" NAME[3]="saito" NAME[4]="tsutsugo"
kshシェルを使用している場合は、配列の初期化の構文は次のとおりです。
set -A array_name value1 value2 ... valuen
bashシェルを使用している場合、ここでは配列の初期化の構文があります。
array_name = (value1 ... valuen)
配列値へのアクセス
配列変数を設定したら、次のようにアクセスします。
${array_name[index]}
ここでARRAY_NAMEは配列の名前であり、そしてインデックスがアクセスされる値のインデックスです。以下にその概念を理解するための例を示します。
#!/bin/sh NAME[0]="tanaka" NAME[1]="sato" NAME[2]="suzuki" NAME[3]="saito" NAME[4]="tsutsugo" echo "First Index: ${NAME[0]}" echo "Second Index: ${NAME[1]}"
上記の例は次の結果を生成します –
$./test.sh First Index: tanaka Second Index: sato
配列内のすべての項目には、次のいずれかの方法でアクセスできます。
${array_name[*]} ${array_name[@]}
ここでarray_nameはあなたが使いたい配列の名前です。以下の例は概念を理解するのに役立ちます –
#!/bin/sh NAME[0]="tanaka" NAME[1]="sato" NAME[2]="suzuki" NAME[3]="saito" NAME[4]="tsutsugo" echo "First Method: ${NAME[*]}" echo "Second Method: ${NAME[@]}"
上記の例は次の結果を生成します –
$./test.sh First Method: tanaka sato suzuki saito tsutsugo Second Method: tanaka sato suzuki saito tsutsugo