首页 > 解决方案 > bash 遍历哈希表

问题描述

我已将函数的输出读取到变量中。

数据看起来像这样

---
data:
  pkg:
    -
      NAME: 'bob'
      FEATURE: Big
    -
      NAME: 'sue'
      FEATURE: Tall
    -
      NAME: 'jim'
      FEATURE: Slim

我看到了遍历数组的示例。这些示例总是手动创建数组。

有没有办法将哈希转换为数组?我怎么做?或者我可以用这种形式处理它吗?

我想回应每个 pkg 的 FEATURE。

标签: bashshellfor-loopmultidimensional-array

解决方案


您示例中的 yaml 表示字典数组。Bash 不做任何类型的多维数组。

但是,您可以通过将数据解析为并行数组来模拟结果,以便${name[0]}的与的bob零索引对应。${feature[0]}Big

真正的问题是手动解析 YAML,我不建议这样做。

如果您真的需要深入研究,请查看此讨论,其中有一些选项。


推荐阅读