BASH变量值作为新定义的变量

时间:2014-10-31 17:59:43

标签: linux bash variables

我不知道如何用英语问这个问题,但我希望将变量的值作为新变量... 该脚本还有一个数字越来越多的循环,最后我想要变量VAR1,VAR2等。

我正在尝试这个:

COUNT=$(echo 1)
DEFINE=$(echo VAR$COUNT)
$DEFINE=$(echo gotcha!)

当我尝试这种方式时,我收到以下错误消息:

~/script.sh: line n: VAR1=gotcha!: command not found

我用括号和引号玩了一下,但它不起作用......任何解决方案?

2 个答案:

答案 0 :(得分:2)

问题是bash期望命令是扩展的结果,而不是赋值。 VAR1=gotcha!不是命令,因此是错误。

最好使用数组:

COUNT=$(echo 1)
VAR[COUNT]='gotcha!'
echo ${VAR[COUNT]}

我猜$(echo 1)代表更复杂的命令,否则您只能使用COUNT=1

答案 1 :(得分:1)

您可以使用declare来创建这样一个"动态"变量,但使用数组可能是更好的选择。

COUNT=1
DEFINE="VAR$COUNT"
declare "$DEFINE=gotcha"