BLOGTIMES
2017/08/15

bash で連想配列(Associative arrays)を使う

  sh 
このエントリーをはてなブックマークに追加

bash は変数として配列が使えるのは知っていたのですが、マニュアルをよく読んだら 連想配列(Associative arrays)があることが分かったのでメモ。

使い方は declare で変数を宣言するときに -A オプションをつけるのがミソ。
(-a と小文字にすると、普通の配列になってしまうので注意。)

bash なのでちょっとクセがありますが、一般的な使い方としてはこんな感じでしょうか。

# 配列の宣言 declare -A arr=( [hoge]=aaa [fuga]=bbb [piyo]=ccc ) arr[extra]=ddd # keys echo ${!arr[*]} # values echo ${arr[*]} # for文で処理 for k in ${!arr[*]} ; do echo "${k} -> ${arr[$k]}" done

実際の実行例

[hsur@localhost ~]$ declare -A arr=( [hoge]=aaa [fuga]=bbb [piyo]=ccc ) # 配列の宣言 [hsur@localhost ~]$ arr[extra]=ddd [hsur@localhost ~]$ echo ${!arr[*]} # keys fuga piyo extra hoge [hsur@localhost ~]$ echo ${arr[*]} # values bbb ccc ddd aaa [hsur@localhost ~]$ for k in ${!arr[*]} ; do # for文で処理 > echo "${k} -> ${arr[$k]}" > done fuga -> bbb piyo -> ccc extra -> ddd hoge -> aaa

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/9541
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン