declare -a arr_=([0]=31 [31]=2 [1257]=87)
declare -p arr_
echo ${#arr[*]}
echo ${#arr[@]}
Действительно ли реализация обычных массивов в BASH - это по сути тот же хэш, только слегка «завуалированный»?
В таком случае получается, что ассоциативные массивы (точнее, векторы) в BASH всегда были, просто до 4-й версии существовало ограничение на формат «ключей»?