Итерация нескольких массивов в оболочке

У меня есть ряд массивов, которые создаются на определенные конечные шаблоны. Я хочу добавить некоторые вычисленные значения к нему путем итерации его один за другим. До сих пор я попытался делать это,

#!/bin/bash
patternBA=()
patternCA=()
patternDA=()

types=(BA CA DA)

for iterator in "${types[@]}"
do
#I need to use this individual iterator for 
#computational purpose to gain the "anyIntegerValue"
pattern'$iterator'+=(anyIntegerValue)
done

Ожидаемое содержание массива:

patternBA=(anyIntegerValue)
patternCA=(anyIntegerValue)
patternDA=(anyIntegerValue)
2
задан 29 August 2018 в 23:18

1 ответ

То, что вы пытаетесь сделать, лучше достигается с помощью ассоциативных массивов:

$ declare -A pattern
$ for((i=0;i<${#types[@]};i++));do pattern[${types[$i]}]=$i; done
$ echo ${pattern["BA"]}
0
$ echo ${pattern["CA"]}
1
$ echo ${pattern["DA"]}
2
3
ответ дан 2 December 2019 в 02:42

Другие вопросы по тегам:

Похожие вопросы: