Bash連想配列

Sheeraz Gul 2023年6月20日
  1. Bash連想配列
  2. 連想配列へのアクセス
  3. 連想配列に新しいメンバーを追加する
  4. 連想配列からメンバーを削除する
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
著者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

関連記事 - Bash Array