shell中的数组arr=(a b c d)
echo ${a[0]}
和
declare -A arr1=([0]=a [1]=b [2]=c [3]=d)
echo ${b[0]}
结果一样,有啥区别,难道普通数组可以看作关联数组的特殊数组
是的,索引数组可以看作关联数组的特殊形式(键为连续整数),但在 Shell 实现中它们是不同的数据结构:
索引数组:为顺序访问优化的数组
关联数组:通用的键值存储
在您的例子中,当使用连续整数作为关联数组的键时,行为确实类似于索引数组,但底层实现和特性仍有差异。
杨力闻已回答。