BASH:通过存储在变量中的名称修改数组的内容

时间:2017-02-19 03:17:32

标签: arrays bash

假设我已经declare -A aaaaaa[bbb]=0创建了一个关联数组var=aaa,我有aaa[bbb]。如何仅使用varbbbeval "(($var[bbb]++))"增加1,因为我可能不知道运行时中数组的确切名称。

我已经尝试了MPMediaItemPropertyTitle,但它没有用。

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为这很重要,可以在答案中注明,而不仅仅是评论。您需要eval。算术语句独立于参数扩展而自行解除引用变量,因此只需使用参数扩展将var替换为aaa即可。

bash-4.4$ declare -A aaa
bash-4.4$ aaa[bbb]=0
bash-4.4$ ((aaa[bbb]++))
bash-4.4$ echo ${aaa[bbb]}
1
bash-4.4$ var=aaa
bash-4.4$ (($var[bbb]++))
bash-4.4$ echo ${aaa[bbb]}
2