2

何らかの理由で、感嘆符の構文で配列キーにアクセスできません。

declare -a sites
sites=(["fr"]="frederick" ["an"]="annapolis")

for i in "${!sites[@]}"
  do
    echo "key: $i "
  done

これはただエコーの「キー:0」です

私はここで何が間違っているのですか?

また、付加価値を付けたいと思います。

したがって、私たちのプットは次のようになります。

キー:fr、値:フレデリック

4

3 に答える 3

-1

問題はdeclare -a.

マニュアルページによると、それはdeclare -A.

declare [-aAfFgilrtux] [-p] [name[=value] ...]
    ...
    -a     Each name is an indexed array variable (see Arrays above).
    -A     Each name is an associative array variable (see Arrays above).

代わりにこれを試してください:

declare -A sites
sites=(["fr"]="frederick" ["an"]="annapolis")

for i in "${!sites[@]}"
  do
    echo "key: $i, value: ${sites[$i]}"
  done
于 2012-04-11T16:05:59.027 に答える