Bash のハッシュテーブル
-
Bash のディクショナリ変数での
<key,value>
ペアの宣言と追加 -
Bash の辞書から
<key,value>
ペアを取得する -
Bash の辞書で
<key,value>
を更新する -
辞書から
<key,value>
ペアを削除する - 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>
ペアを追加しました。キーは 1
と 2
で、値は Nil
と Esh
です。
Bash の辞書から <key,value>
ペアを取得する
ディクショナリ内の対応する値
をキー
でチェックするには、定義したディクショナリ変数に中括弧 {}
を含む $
を追加する必要があります。
$ echo ${dict[1]}
出力:
Nil
Bash の辞書で <key,value>
を更新する
辞書内の既存の <key, value>
を更新するには、新しい <key, value>
を挿入し、既存の値を上書きする必要があります。
$ dict[1]=Nilesh
キー1
の値を取得すると、次のようになります。
$ echo ${dict[1]}
出力:
Nilesh
ご覧のとおり、キー1
の Nil
は Nilesh
で上書きされています。
辞書から <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 ターミナルで実行しました。""
は、スペースを含むキーを処理するために使用されます。
出力: