在 shell 中迭代多个数组

在 shell 中迭代多个数组

我有一组基于特定结尾模式创建的数组。我想通过逐个迭代向其中添加一些计算值。到目前为止,我尝试过这样做,

#!/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)

答案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

相关内容