| 152行目: | 152行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
== 連想配列 == | |||
連想配列の定義は、<code>declare -A <配列名></code>と記述する。<br> | |||
例えば、連想配列arrayを定義する場合は、<code>declare -A array</code>と記述する。<br> | |||
<br> | |||
通常の配列は、<code>declare -a <配列名></code>と記述する。通常の変数は、<code>declare <変数名></code>とする。<br> | |||
<br> | |||
連想配列の値は、<code>連想配列名[キー]=値<code>と記述する。 | |||
例えば、連想配列arrayにおいて、キーhogeに値10を代入する場合、<code>array["hoge"]=10</code>と記述する。 | |||
引用符""を省略して、<code>array[hoge]=10</code>と記述してもよい。 | |||
値の参照は、通常の配列と同様に<code>${array["hoge"]}</code>と記述する。ここでも、引用符""は省略できる。 | |||
for ~ in」で配列の値を全て参照したい場合も、通常の配列同様、「for 変数名 in ${配列名[@]}」のようにします。 | |||
全てのキーの値を参照したい場合は、配列名の前に「!」記号を付けて、「for 変数名 in ${!配列名[@]}」のようにします。 | |||
以下のサンプルスクリプト(arraytest)では、連想配列「exam」を定義し、suzuki、tanaka、yamamotoの点数を保存しています。そして、1つ目のfor文では全員の点数を順次表示し、2つ目のfor文では全員の名前と点数(キーと値)を表示しています。なお、サンプルスクリプトでは、suzukiが連想配列のキーであることを分かりやすくするために、キーに引用符を使用しています。 | |||
<syntaxhighlight lang="sh"> | |||
#!/bin/sh | |||
declare -A array | |||
array["hoge"]=10 | |||
array["piyo"]=20 | |||
array["fuga"]=30 | |||
for e in ${exam[@]} | |||
do | |||
echo $e | |||
done | |||
for k in ${!exam[@]} | |||
do | |||
echo "key : $k" | |||
echo "value: ${exam[$k]}" | |||
done | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:シェルスクリプト]] | [[カテゴリ:シェルスクリプト]] | ||