bash Итерация по хеш-таблице - PullRequest
0 голосов
/ 11 апреля 2019

Я прочитал вывод функции в переменную.

Данные выглядят так

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

Я вижу примеры итерации по массиву.Эти примеры всегда создают массив вручную.

Есть ли способ преобразовать хеш в массив?Как я могу это сделать?Или я могу иметь дело с этим в этой форме?

Я хотел бы повторить ОСОБЕННОСТИ каждого pkg.

1 Ответ

0 голосов
/ 12 апреля 2019

yaml в вашем примере представляет собой массив словарей. Bash не создает многомерных массивов любого рода.

Однако вы можете смоделировать результат, проанализировав ваши данные в параллельных массивах, так что ${name[0]} из bob соответствует его нулевому индексу с ${feature[0]} из Big.

Настоящей проблемой является ручной анализ YAML, который я не рекомендую.

Если вам действительно нужно погрузиться в это, посмотрите это обсуждение , в котором есть несколько вариантов.

...