echo $var命令可以很容易地调用bash中变量的值,如下所示
user@linux:~$ a=1; b=2; c=a+b
user@linux:~$ echo $a $b $c
1 2 a+b
user@linux:~$ 我想要实现的是用x中的实际值替换a,b,c
user@linux:~$ a=1; b=2; c=a+b
user@linux:~$ for i in a b c; do echo "$i = x"; done
a = x
b = x
c = x
user@linux:~$ 通过使用类似的for循环,我希望能得到这样的输出
a = 1
b = 2
c = a+b发布于 2017-12-07 06:43:50
间接使用
$ for i in a b c; do echo "$i = ${!i}"; done
a = 1
b = 2
c = a+b文档
间接在man bash中解释
如果参数的第一个字符是感叹号(!),而参数不是nameref,则会引入一个间接变量级别。Bash使用参数其余部分形成的变量的值作为变量的名称;然后展开该变量,该值用于替换的其余部分,而不是参数本身的值。这就是所谓的间接膨胀。如果参数是nameref,则扩展到由参数引用的变量的名称,而不是执行完全的间接展开。这方面的例外是下面描述的${!前缀*}和${!name@}的扩展。感叹号必须立即跟随左大括号,以引入间接。
https://stackoverflow.com/questions/47689078
复制相似问题