如何设置包含将在 Bash 中更改的其他变量的变量?

How to set a variable which contains other variables that will change in Bash?

var1=0
var=$var1
(Some conditions that may change $var1)
var1=1
echo $var

我需要 1 作为 echo $var 的输出。换句话说,如果 variable 中包含的 variable1 发生变化,我需要获取一个新值。 是否有一些特殊的选项或报价可以让我这样做?

编辑:

FILE=ArchLinuxARM-$DATE-$TARGET.img
DATE=2015.10
TARGET=rpi-2

echo ${!FILE}

不会回显任何内容。 (它应该回显 ArchLinuxARM-2015.10-rpi-2.img

在bash版本4.3中,可以创建引用变量:

$ echo $BASH_VERSION
4.3.42(1)-release
$ declare -n var=var1
$ var1=0; echo $var
0
$ var1=1; echo $var
1

对于你的具体问题,你最好使用一个函数:

filename() { echo "ArchLinuxARM-$DATE-$TARGET.img"; }

DATE=2015.10
TARGET=rpi-2

echo "$(filename)"