ようへいの日々精進XP

よかろうもん

Bash de hash

はじめに

  • Bash連想配列が出来るのを知って感動的だったのでメモ
  • (追記)参考にさせて頂いたサイトとタイトル等が被ってしまい大変申し訳ございません

参考


こんな感じで

以下のような感じで利用する。

#!/bin/bash

declare -A H
H["key1"]="value1"
H["key2"]="value2"
H["key3"]="value3"
# 上記は以下のようにも書くことが出来る(こちらの書き方が好き)
# H=( \
#  ["key1"]="value1" \
#  ["key2"]="value2" \
#  ["key3"]="value3"
# )

for i in ${!H[@]}; do
  echo "${i} => [${H[$i]}]"
done

ポイントは declare での変数の型宣言(-A でハッシュ型を宣言する)。但し Bash バージョンが 4 以上であることが前提。

実行結果

以下のように表示される。

key3 => [value3]
key2 => [value2]
key1 => [value1]

ちなみに

Value だけ取得する場合には以下のように書く。

for i in ${H[@]}; do
  echo "${i}"
done

以下、実行結果。

value3
value2
value1

同じく

Key だけ取得したい場合には以下のように書く。

for i in ${!H[@]}; do
  echo "${i}"
done

以下、実行結果。

key3
key2
key1

これで

  • 色々と捗った