chzzh Asked: 2022-05-22 01:32:48 +0800 CST2022-05-22 01:32:48 +0800 CST 2022-05-22 01:32:48 +0800 CST 如何附加到具有动态变量名的数组? 772 section_example=(one two three) name=example; section_$name+=(four) bash: syntax error near unexpected token `four' 部分名称事先是未知的。eval并declare -a输出相同的错误。我看到的唯一方法是声明一个带有部分名称和值的关联数组。 bash array 1 个回答 Voted Best Answer RudiC 2022-05-22T10:31:57+08:002022-05-22T10:31:57+08:00 如果双引号,evaled 命令会失败吗?喜欢 name=example; eval "section_$name+=(six)" echo "${section_example[@]}" one two three four five six 最近的bashes 提供“nameref”变量。man bash: 可以使用 -n 选项为 declare 或 local 内置命令(请参阅下面的 declare 和 local 的描述)为变量分配 nameref 属性,以创建 nameref 或对另一个变量的引用。这允许间接地操纵变量...... 尝试 > declare -n NamRef=section_$name > NamRef+=(four) > echo "${NamRef[@]}" one two three four > echo "${section_example[@]}" one two three four
如果双引号,
eval
ed 命令会失败吗?喜欢最近的
bash
es 提供“nameref”变量。man bash
:尝试