0

我知道我可以使用间接扩展来调用名称包含在其他变量中的变量,如下所示

VAR=“测试”

VARNAME="VAR"

回声 ${!VARNAME}

但是,如果我尝试用这个重新定义一个变量:

VARVALUE=0 值="VARVALUE"

${!VARNAME}=${!VALUE}

回声 ${!VARNAME}

它不起作用,我得到

bash: test=0: 找不到命令

我可以看到为什么这个变量声明失败,但我不知道如何修复它。在搜索中,我只找到了使用间接扩展调用变量的示例,但没有这样定义它们。

编辑:

经过多一点搜索,我试过了

eval "${!VARNAME}=${!VALUE}"

抛出

bash: =0: 找不到命令

4

1 回答 1

0

再摆弄它,我设法找到了解决方案

eval "$VARNAME=${!VALUE}"

于 2013-06-18T16:02:13.503 回答