- blogs:
- cles::blog
2017/08/15

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

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 を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . Thunderbird のメッセージをスレッド化しないようにする(2174)
2 . Word で数式がグレーアウトされていて挿入できないときは(1835)
3 . Firefox でパスワードが保存されるページとされないページの違い(1411)
4 . Windows 10 で勝手にログアウトされないようにする(1329)
5 . iPhone の設定を開くと「不正なパスワード CardDAV アカウント "Google" のパスワードを入力」というダイアログが出る時は(896)
2 . Word で数式がグレーアウトされていて挿入できないときは(1835)
3 . Firefox でパスワードが保存されるページとされないページの違い(1411)
4 . Windows 10 で勝手にログアウトされないようにする(1329)
5 . iPhone の設定を開くと「不正なパスワード CardDAV アカウント "Google" のパスワードを入力」というダイアログが出る時は(896)
cles::blogについて
Referrers