我不知道如何用英语问这个问题,但我希望将变量的值作为新变量... 该脚本还有一个数字越来越多的循环,最后我想要变量VAR1,VAR2等。
我正在尝试这个:
COUNT=$(echo 1)
DEFINE=$(echo VAR$COUNT)
$DEFINE=$(echo gotcha!)
当我尝试这种方式时,我收到以下错误消息:
~/script.sh: line n: VAR1=gotcha!: command not found
我用括号和引号玩了一下,但它不起作用......任何解决方案?
答案 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"