■ はじめに
https://dk521123.hatenablog.com/entry/2021/08/11/000000
の続き。 今回は、連想配列を扱う。
目次
【1】連想配列 - ディクショナリ 【2】構文 1)定義方法 2)キーが存在しているか確認 【3】サンプル 例1:Hello world 例2:キーの存在チェック 【4】使用上の注意
【1】連想配列 - ディクショナリ
* 連想配列(Associative arrays) => Pythonでいうdict。JavaでいうMapみたいなキー・値型 => 詳細は以下のサイトを参照。
https://www.atmarkit.co.jp/ait/articles/1906/05/news004.html
【2】構文
1)定義方法
* 「declare -A <連想配列名>」で定義する。 => -A : 連想配列 Associative arraysを意味している
2)キーが存在しているか確認
# 存在する場合、True if [ -n "${array["<key>"]}" ]; then echo "Exist" fi # 存在しない場合、True if [ -z "${array["<key>"]}" ]; then echo "Not exist" fi
【3】サンプル
例1:Hello world
#!/bin/bash declare -A dict; for((i=0; i<10; i++)) do echo ${i} dict["${i}"]="Hello - ${i}" done echo "************" for key in ${!dict[@]}; do # キーを取得 echo $key # 値を取得 echo ${dict[$key]} done
例2:キーの存在チェック
#!/bin/bash # -A : 連想配列(Associative arrays)を定義 declare -A COUNTRIES; COUNTRIES=( ["jp"]="Japan" ["us"]="United States of America" ) echo "Result = ${COUNTRIES['jp']}" # 存在する場合、True if [ -n "${COUNTRIES['jp']}" ]; then echo "JP Exists" fi # 存在しない場合、True if [ -z "${COUNTRIES['uk']}" ]; then echo "UK Not exist" fi
【4】使用上の注意
* パイプを使ったループして、 連想配列に値を設定するには、ひと手間必要。
パイプを使ったループで連想配列に値を設定する
https://dk521123.hatenablog.com/entry/2021/09/23/223401
参考文献
https://qiita.com/YutaSaito1991/items/c7c6bacb916f41ef1471
関連記事
シェル ~入門編~
https://dk521123.hatenablog.com/entry/2014/10/23/005406
シェル ~ 基本編 / 配列 ~
https://dk521123.hatenablog.com/entry/2021/08/11/000000
シェル ~ 基本編・構文全般 ~
https://dk521123.hatenablog.com/entry/2015/02/20/001600
シェル ~ 基本編・条件分岐 if / case ~
https://dk521123.hatenablog.com/entry/2015/05/01/000043
シェル ~ 基本編・ループ while / for etc ~
https://dk521123.hatenablog.com/entry/2021/08/09/000000
シェル ~ 基本編・関数 ~
https://dk521123.hatenablog.com/entry/2015/03/17/233124
シェル ~ 基本編・引数あれこれ ~
https://dk521123.hatenablog.com/entry/2021/07/11/000421
シェルで部分一致(前方一致・後方一致)
https://dk521123.hatenablog.com/entry/2020/09/01/000000
shoptコマンド
https://dk521123.hatenablog.com/entry/2021/09/12/000000
リダイレクト・パイプライン
https://dk521123.hatenablog.com/entry/2021/09/13/000000
パイプを使ったループで連想配列に値を設定する
https://dk521123.hatenablog.com/entry/2021/09/23/223401