📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 156行目: | 156行目: | ||
連想配列の定義は、<code>declare -A <配列名></code>と記述する。<br> | 連想配列の定義は、<code>declare -A <配列名></code>と記述する。<br> | ||
例えば、連想配列arrayを定義する場合は、<code>declare -A array</code>と記述する。<br> | 例えば、連想配列arrayを定義する場合は、<code>declare -A array</code>と記述する。<br> | ||
通常の配列は、<code>declare -a <配列名></code>と記述する。通常の変数は、<code>declare <変数名></code>とする。<br> | |||
<br> | <br> | ||
連想配列の値は、<code>連想配列名[キー]=値</code>と記述する。<br> | |||
例えば、連想配列arrayにおいて、キーhogeに値10を代入する場合、<code>array["hoge"]=10</code>と記述する。<br> | |||
引用符<code>""</code>または<code><nowiki>''</nowiki></code>を省略して、<code>array[hoge]=10</code>と記述してもよい。<br> | |||
<br> | |||
値の参照は、通常の配列と同様に<code>${array["hoge"]}</code>と記述する。ここでも、引用符""は省略できる。<br> | |||
for文で配列の値を全て参照する場合も、通常の配列と同様、<code>for <変数名> in ${配列名[@]}</code>と記述できる。<br> | |||
<br> | |||
全てのキーの値を参照する場合、配列名の前に<code>!</code>記号を付加して、<code>for <変数名> in ${!配列名[@]}</code>と記述する。<br> | |||
<br> | <br> | ||
以下の例では、連想配列arrayを定義して、hoge、piyo、fugaの点数を保存している。<br> | |||
1つ目のfor文では、全員の値を順次表示して、2つ目のfor文では、全員の名前と値(キーと値)を表示している。<br> | |||
<syntaxhighlight lang="sh"> | <syntaxhighlight lang="sh"> | ||
#!/bin/sh | #!/bin/sh | ||
declare -A array | declare -A array | ||
array["hoge"]=10 | array["hoge"]=10 | ||
array["piyo"]=20 | array["piyo"]=20 | ||
array["fuga"]=30 | array["fuga"]=30 | ||
for | for VALUE in ${array[@]} | ||
do | do | ||
echo $ | echo "$VALUE" | ||
done | done | ||
for | |||
do | echo "" | ||
for KEY in ${!array[@]} | |||
done | do | ||
echo "key : $KEY" | |||
echo "value : ${array[$KEY]}" | |||
done | |||
# 出力 | |||
10 | |||
20 | |||
30 | |||
key : hoge | |||
value : 10 | |||
key : piyo | |||
value : 20 | |||
key : fuga | |||
value : 30 | |||
</syntaxhighlight> | |||
<br><br> | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:シェルスクリプト]] | [[カテゴリ:シェルスクリプト]] | ||