HOWTO · Bash
Bash の多次元配列
このチュートリアルでは、Bash の多次元配列について説明します。
多次元配列は、どのプログラムにとっても非常に重要な要素です。 主に、データのテーブル ビューを作成するため、および他の多くの目的で使用されます。
この記事では、2 次元配列を作成する方法について説明します。 また、必要な例と説明を使用してトピックについて説明します。
ここでは、2つの異なる方法について説明します。
Bash で多次元配列を宣言する基本的な方法
これは、多次元配列を作成する最も基本的な方法です。 以下の例では、非常に基本的な 2 次元配列を作成します。
以下は、この例のコードです。
ArrayOfArray_1=("Alen" "24")
ArrayOfArray_2=("Walker" "31")
MainArray=(
ArrayOfArray_1[@]
ArrayOfArray_2[@]
)
ArrayLength=${#MainArray[@]}
for ((i=0; i<$ArrayLength; i++))
do
name=${!MainArray[i]:0:1}
age=${!MainArray[i]:1:1}
echo "Name : ${name}"
echo "Age : ${age}"
done
上記のコードは、ArrayOfArray_1 と ArrayOfArray_2 という名前の 2つの異なる配列を宣言したことを示しています。 その後、メインの配列を宣言しました。その要素は、最近宣言したこれら 2つの配列です。
次に、ループの配列の長さを計算しました。 ループ内で、メイン配列にインデックスを付けて、これら 2つのサブ配列からデータを抽出します。
最後に、最終結果を echo します。 スクリプトを実行すると、以下のような出力が得られます。
Name : Alen
Age : 24
Name : Walker
Age : 31
Bash で連想配列を使用して 2 次元配列を宣言する
この方法は少し複雑です。 このメソッドでは、連想配列という名前の特別な Bash スクリプト配列について説明します。
連想配列は、文字列値をキーまたはインデックスとして格納できる特別な配列です。 他のプログラミング言語と同じです。
連想配列を宣言するための一般的な構文は、declare -A ArrayName です。
以下の例では、5つの行と 6つの列を含む 2D 配列を作成します。 以下は、この例のコードです。
declare -A Array2D
RowNum=5
ColumnNum=6
for ((i=1;i<=RowNum;i++)) do
for ((j=1;j<=ColumnNum;j++)) do
Array2D[$i,$j]=$RANDOM
done
done
f1="%$((${#RowNum}+1))s"
f2=" %9s"
printf "$f1" ''
for ((i=1;i<=RowNum;i++)) do
printf "$f2" $i
done
echo
for ((j=1;j<=ColumnNum;j++)) do
printf "$f1" $j
for ((i=1;i<=RowNum;i++)) do
printf "$f2" ${Array2D[$i,$j]}
done
echo
done
上記の例では、Array2D という名前の連想配列を宣言しました。
その後、2つの変数を作成し、整数値を割り当てました。 この整数値は、行と列の数を指定します。
次に、配列を乱数で埋めるネストされたループを作成しました。
これで、配列の宣言と整理が完了しました。 2D 配列がどのように見えるかを見てみましょう。
コードに見られるように、いくつかのループを使用してこれを行います。 上記のスクリプトを実行すると、次のような出力が表示されます。
1 2 3 4 5
1 16700 5241 2599 24330 1662
2 23264 19557 10425 13413 25606
3 17987 4199 13598 23897 26734
4 24420 27830 24855 8165 13531
5 15495 18790 13347 12947 11826
6 23458 22838 137 32454 32441
この記事のコードはすべて Bash で記述されています。 Linux シェル環境でのみ動作します。