Доступ к ключам осуществляется через восклицательный знак: ${!array[@]}
, значения доступны с использованием ${array[@]}
.
Вы можете перебирать пары ключ / значение следующим образом:
for i in "${!array[@]}"
do
echo "key : $i"
echo "value: ${array[$i]}"
done
Обратите внимание на использование кавычек вокруг переменной в операторе for
(плюс использование @
вместо *
). Это необходимо в случае, если какие-либо ключи содержат пробелы.
Путаница в другом ответе связана с тем, что ваш вопрос включает в себя "foo" и "bar" для обеих клавиш и значений.