個人的勉強メモ置き場

プログラミングど素人のメモ置き場

bash 連想配列 メモ

bashでは連想配列が使用できる。一般的なプログラミング言語ではハッシュやマップ、辞書に相当する

作成するにはdeclare -Aで明示的に宣言する必要がある。参照にはインデックスの代わりにキーを指定する

$ declare -A user
$ user=([id]=1 [name]=zykb)

# 宣言と代入を1行で
$ declare -A user=([id]=1 [name]=zykb)

$ echo ${user[id]}
1
$ echo ${user[name]}
zykb

素数を取得するには${#連想配列名[@]}とする

$ echo ${#user[@]}
2

要素の代入もキーを指定する。すでに値が存在していれば上書き、そうでなければ新しいキーと値の組み合わせを追加する

$ user[name]=zykb2
$ echo ${user[name]}
zykb2
$ user[email]=sample@example.com
$ echo ${user[email]}
sample@example.com

要素の削除には配列と同じくunsetコマンドを使用する
また、全ての値を取得するには${連想配列名[@]}とする

$ unset user[name]
$ echo "${user[@]}"
1 sample@example.com

要素ではなくキーを取得するには前に!をつける

$ echo "${!user[@]}"
id email