Zsh:将元素附加到动态命名的关联数组
Zsh: append an element a dynamically-named associative array
我有几个关联数组,
typeset -A first
typeset -A second
# …
并想向其中一个添加元素(例如 [a]=b
),但找不到正确的语法。开始于
if something; then
arr=first
else
arr=second
fi
$arr[a]+=b # bad
$arr+=([a]=b) # bad
并尝试了引号、大括号、各种下标和参数扩展标志、arr=$first
/arr=$second
等多种组合。我尝试的一切都是错误的。可以吗?
我不认为这是理想的,但它应该完成工作。
export "${arr}[a]"=b
这在很多情况下也应该有效:
eval "${arr}[a]=b"
eval
名声不好(通常是当之无愧的),但是像这里使用的那些简单的替换,应该没问题。
我有几个关联数组,
typeset -A first
typeset -A second
# …
并想向其中一个添加元素(例如 [a]=b
),但找不到正确的语法。开始于
if something; then
arr=first
else
arr=second
fi
$arr[a]+=b # bad
$arr+=([a]=b) # bad
并尝试了引号、大括号、各种下标和参数扩展标志、arr=$first
/arr=$second
等多种组合。我尝试的一切都是错误的。可以吗?
我不认为这是理想的,但它应该完成工作。
export "${arr}[a]"=b
这在很多情况下也应该有效:
eval "${arr}[a]=b"
eval
名声不好(通常是当之无愧的),但是像这里使用的那些简单的替换,应该没问题。