關聯陣列

Version >= 4

宣告一個關聯陣列

declare -A aa 

在初始化或使用之前宣告關聯陣列是必需的。

初始化元素

你可以按如下方式一次初始化元素:

aa[hello]=world
aa[ab]=cd
aa["key with space"]="hello world"

你還可以在單​​個語句中初始化整個關聯陣列:

aa=([hello]=world [ab]=cd ["key with space"]="hello world")

訪問關聯陣列元素

echo ${aa[hello]}
# Out: world

列出關聯陣列鍵

echo "${!aa[@]}"
#Out: hello ab key with space

列出關聯陣列值

echo "${aa[@]}"
#Out: world cd hello world

迭代關聯陣列鍵和值

for key in "${!aa[@]}"; do
    echo "Key:   ${key}"
    echo "Value: ${array[$key]}"
done

# Out:
# Key:   hello
# Value: world
# Key:   ab
# Value: cd
# Key:   key with space
# Value: hello world

計算關聯陣列元素

echo "${#aa[@]}"
# Out: 3