bash - 如何在 Bash 中迭代关联数组

标签 bash associative-array key-value bash4

基于 Bash 脚本中的关联数组,我需要对其进行迭代以获取键和值。

#!/bin/bash

declare -A array
array[foo]=bar
array[bar]=foo

我实际上不明白如何在使用 for-in 循环时获取 key 。

最佳答案

使用感叹号访问键:${!array[@]},使用 访问 ${array[@]}.

您可以像这样遍历键/值对:

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

请注意在 for 语句中使用引号将变量括起来(加上使用 @ 而不是 *)。这是必要的,以防任何键包含空格。

另一个答案中的混淆来自于您的问题包括键值的“foo”和“bar”。

关于bash - 如何在 Bash 中迭代关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3112687/

相关文章:

bash - 在 xargs 变量上使用 sed 在 shell 扩展中不起作用

php - MySQL 返回 PHP 关联数组 - 但我无法访问数组数据

php:显示关联数组的每个元素的键和值

c++ - 从 map 中检索值的问题(该值是一个 vector )

linux - Bash - 将 'nested' 变量的值获取到另一个变量中 [编辑 : Indirect Variable Expansion]

java - 使用 sed/awk/whatever 从 *nix 上的日志中获取异常

php - 如何在 php 中对多维关联数组的重复值进行分组?

javascript - 使用 Node js 和 redis - 获得可读代码

reactjs - 如何在 redux 中将状态值存储为键值对?

bash - 从命名管道捕获非零退出代码