我试图根据变量创建关联数组。所以下面是我想要做的超级简化版本(ls命令并不是我真正想要的,只是用于说明目的)...在Bash中为关联数组键使用变量
我有一个静态定义的数组(文本-a ,文字-b)。然后我想遍历该数组,然后创建带有这些名称和_AA的关联数组(所以关联数组称为text-a_AA和text-b_AA)。
我真的不需要附加的_AA,而是在想,因为$名称已经在循环使用 它可能有必要避免重名 。
我将需要那些已定义的脚本,并将在脚本的后续部分引用它们,而不仅仅是在下面看到的for循环中,我试图定义它们......例如,我想稍后,能够引用text-a_AA [NUM](同样,使用text-a_AA部分的变量)。显然,我下面有什么不起作用......并且从我可以告诉的是,我需要使用namerefs?我试图让语法正确,但似乎无法弄清楚...任何帮助将不胜感激!
#!/usr/bin/env bash
NAMES=('text-a' 'text-b')
for NAME in "${NAMES[@]}"
do
NAME_AA="${NAME}_AA"
$NAME_AA[NUM]=$(cat $NAME | wc -l)
done
for NAME in "${NAMES[@]}"
do
echo "max: ${$NAME_AA[NUM]}"
done
什么错误? – hedgar2017
哪个版本的Bash允许包含'-'的变量名(而不是'_')?在线[Bash](http://www.gnu.org/software/bash/manual/bash.html)手册似乎没有列出选项,Bash 3.2和4.3似乎都不允许。 –