【发布时间】:2011-10-03 08:27:39
【问题描述】:
我需要遍历关联数组并将其内容导出到临时数组(并对值执行一些更新)。
然后应该丢弃第一个数组的剩余内容,我想将临时数组分配给原始数组变量。
须藤代码:
declare -A MAINARRAY
declare -A TEMPARRAY
... populate ${MAINARRAY[...]} ...
while something; do #Drain some values from MAINARRAY to TEMPARRAY
${TEMPARRAY["$name"]}=((${MAINARRAY["$name"]} + $somevalue))
done
... other manipulations to TEMPARRAY ...
unset MAINARRAY #discard left over values that had no update
declare -A MAINARRAY
MAINARRAY=${TEMPARRAY[@]} #assign updated TEMPARRAY back to MAINARRAY (ERROR HERE)
【问题讨论】:
-
是的,这就是我现在得到的,我在想应该有一些更有效的方法来重命名变量。
-
如果只需要变量重命名,[FlorianFeldhaus] 的解决方案将起作用。事实上,在 sed 的帮助下,它可以是一条语句,如下所示:
eval $(declare -p old_name |sed 's/old_name=/new_name=/')
标签: bash variables associative-array