Bash のハッシュテーブル

Nilesh Katuwal 2023年1月30日
  1. Bash のディクショナリ変数での <key,value> ペアの宣言と追加
  2. Bash の辞書から <key,value> ペアを取得する
  3. Bash の辞書で <key,value> を更新する
  4. 辞書から <key,value> ペアを削除する
  5. Bash で辞書を反復する Bash で
Bash のハッシュテーブル

ハッシュマップまたは連想配列とも呼ばれる辞書は、あらゆるプログラミング言語で物のコレクションを格納するための最も基本的なデータ構造の 1つです。

ディクショナリはキーのコレクションであり、各キーには値が関連付けられています。一致するキーを使用して、辞書の値を挿入、取得、または変更できます。

Bash は汎用プログラミング言語ではありませんが、バージョン 4 以降のハッシュマップをネイティブにサポートしています。

Bash のディクショナリ変数での <key,value> ペアの宣言と追加

Bash の変数は強く型付けされていないため、変数の属性を指定して型のような動作を強制する必要があります。

Bash で辞書を利用するには、declare ステートメントと連想配列を意味する -A オプションを使用して、辞書変数を宣言します。

$ declare -A dict

これで、辞書のように使用できる dict という変数を宣言しました。<key,value> ペアを辞書に追加するには、次の構文に従います。

$ name_of_dictionary[key]=value

上記の構文を使用して、<key, value> ペアを追加しましょう。

$ dict[1]=Nil
$ dict[2]=Esh

2つの <key, value> ペアを追加しました。キーは 12 で、値は NilEsh です。

Bash の辞書から <key,value> ペアを取得する

ディクショナリ内の対応するキーでチェックするには、定義したディクショナリ変数に中括弧 {} を含む $ を追加する必要があります。

$ echo ${dict[1]}

出力:

Nil

Bash の辞書で <key,value> を更新する

辞書内の既存の <key, value> を更新するには、新しい <key, value> を挿入し、既存の値を上書きする必要があります。

$ dict[1]=Nilesh

キー1 の値を取得すると、次のようになります。

$ echo ${dict[1]}

出力:

Nilesh

ご覧のとおり、キー1NilNilesh で上書きされています。

辞書から <key,value> ペアを削除する

unset コマンドを使用して、<key, value> ペアを削除します。

$ unset dict[1]

上記のコマンドは、キー1 との <key, value> ペアを削除します。

Bash で辞書を反復する Bash で

Bash では、for ループを使用して辞書を反復処理できます。例を見てみましょう。

#!/bin/bash
declare -A dict
dict[1]=Nil
dict[2]=Esh
for key in "${!dict[@]}"; do 
    echo "$key ${dict[$key]}" 
done

上記のコマンドをスクリプトで書き直し、Bash ターミナルで実行しました。""は、スペースを含むキーを処理するために使用されます。

出力:

bash 辞書の出力

関連記事 - Bash Dictionary