如何使用变量的值作为标识符来声明/修改 BASH 中的数组?

问题描述

我会试着解释一下:

我正在编写一个 bash 脚本并且我在 for 循环中。对于 all 循环,我得到了一个变量 VAR_ID,用于存储另一个变量的标识符,该变量将在所有工作完成后导出。对于每一个循环,我得到一个变量VALVAL 的值应分配给 VAR_ID 的值。最后,VAR_ID 的值必须是一个数组才能存储所有值。

呸……嗯,这对我来说有点难以解释,但我认为这个简单的脚本应该可以阐明我想要做的事情(当然它是从其实际目的缩小的):

#!/bin/bash

COUNT=0
VAR_ID="my_array"
declare -a "$VAR_ID"

while (( $COUNT <= 2 ))
do
    VAL=$RANDOM
    $VAR_ID+=( "$VAL" )    # this doesn't work
    (( COUNT++ ))
done

export $VAR_ID

这应该会产生一个变量 my_array 和其中的三个随机值。我尝试在 declare 中使用 declare $VAR_ID=$VAL,但如果我使用 += 而不是 =,这将不再起作用。 COUNT 可以在可能的解决方案中用作位置编号,如果有帮助的话,因为我的原始脚本中也有。

提前感谢您的帮助

编辑:我知道 eval 有可能,但我尽量避免使用它,直到没有其他方法为止。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)