HOWTO · Bash
Bash連想配列
このチュートリアルでは、Bash で連想配列を作成する方法を示します。
このページの内容
このチュートリアルでは、Bash で連想配列を作成する方法を示します。
Bash連想配列
配列は Bash でデータを格納するのに非常に便利であり、連想配列と呼ばれる文字列インデックスを持つ配列も Bash で作成できます。 連想配列は Bash 4 で追加されたもので、それ以前のバージョンでは宣言できません。
まず、Bash のバージョンを確認します。バージョンが 4 未満の場合、連想配列を宣言できません。 declare コマンドを使用して、連想配列を宣言します。
以下の手順に従って、連想配列を宣言します。
-
まず、Bash のバージョンを確認し、次のコマンドを実行します。
bash --version上記のコマンドは、Bash のバージョンを確認します。 出力は次のとおりです。
GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> -
declareコマンドを使用して、連想配列を宣言します。declare -A DemoArray DemoArray[One]=Delftstack1 DemoArray[Two]=Delftstack2 DemoArray[Three]=Delftstack3 DemoArray[Four]=Delftstack4 DemoArray[Five]=Delftstack5 DemoArray[Six]=Delftstack6上記のコマンドは、最初に連想配列を宣言してから、インデックスと値を割り当てます。
-
また、連想配列を 1 行で宣言できる別のコマンドがあります。
declare -A DemoArray1=( [One]=Delftstack1 [Two]=Delftstack2 [Three]=Delftstack3 )上記のコマンドは、連想配列を 1 行で作成します。
連想配列へのアクセス
連想配列の要素には、個別にアクセスすることも、配列を使用してアクセスすることもできます。 それらを直接エコーするか、配列をループに入れることができます。
値に個別にアクセスするコマンドを参照してください。
echo ${DemoArray[One]}
echo ${DemoArray[Two]}
echo ${DemoArray[Three]}
echo ${DemoArray[Four]}
echo ${DemoArray[Five]}
echo ${DemoArray[Six]}
上記のコマンドは、指定されたインデックスの連想配列の値を出力します。 出力を参照してください。
Delftstack1
Delftstack2
Delftstack3
Delftstack4
Delftstack5
Delftstack6
ループを使用して、連想配列のすべての値にアクセスすることもできます。 次のコマンドを参照してください。
for ArrayKey in "${!DemoArray[@]}"; do echo $ArrayKey; done
echo "${!DemoArray[@]}"
ここ ! 連想配列のキーを読み取るために使用できます。 最初のコマンドは連想配列のキーを 1つずつ出力し、2 番目のコマンドはすべてのキーを一度に出力します。
出力を参照してください。
Four
Six
One
Five
Two
Three Four Six One Five Two
同様に、値を出力するには、! を削除します。 上記のコマンドの演算子:
for ArrayValue in "${DemoArray[@]}"; do echo $ArrayValue; done
echo "${DemoArray[@]}"
これらのコマンドは、指定された連想配列のすべての値を出力します。 出力を参照してください。
Delftstack4
Delftstack6
Delftstack1
Delftstack5
Delftstack2
Delftstack3 Delftstack4 Delftstack6 Delftstack1 Delftstack5 Delftstack2
最後に、for ループを使用して値を含むキーを出力できます。 次のコマンドを参照してください。
for ArrayKey in "${!DemoArray[@]}"; do echo "$ArrayKey => ${DemoArray[$ArrayKey]}"; done
上記のコマンドは、指定された配列のすべてのキーと値のペアを出力します。 出力を参照してください。
Three => Delftstack3
Four => Delftstack4
Six => Delftstack6
One => Delftstack1
Five => Delftstack5
Two => Delftstack2
連想配列に新しいメンバーを追加する
連想配列に新しい要素を追加する操作は非常に簡単です。 配列と新しいキーと値のペアの間に += 連結演算子を使用します。
キーと値のペアを作成し、それを連想配列に割り当てます。 次のコマンドを参照してください。
echo "${DemoArray[@]}"
DemoArray+=([Seven]=Delftstack7)
echo "${DemoArray[@]}"
上記のコマンドは、元の配列を出力し、新しいメンバーを追加してから、変更された配列を出力します。 出力を見る
Delftstack3 Delftstack4 Delftstack6 Delftstack1 Delftstack5 Delftstack2
Delftstack3 Delftstack4 Delftstack7 Delftstack6 Delftstack1 Delftstack5 Delftstack2
連想配列からメンバーを削除する
連想配列のメンバーの削除も簡単な操作です。 アレイから削除されるアレイ メンバーに対して unset コマンドを使用します。
コマンドを参照してください。
echo "${DemoArray[@]}"
unset DemoArray[Seven]
echo "${DemoArray[@]}"
上記のコマンドは、最初に元の配列を表示し、次に配列のメンバ [Seven] を削除してから、変更された配列を再度表示します。 出力を参照してください。
Delftstack3 Delftstack4 Delftstack7 Delftstack6 Delftstack1 Delftstack5 Delftstack2
Delftstack3 Delftstack4 Delftstack6 Delftstack1 Delftstack5 Delftstack2