Bash间接引用,其中一个var引用多个

  • 本文关键字:引用 一个 var Bash bash
  • 更新时间 :
  • 英文 :


我正试图取消引用单个变量中包含的两个或多个变量,但我想不出如何在没有eval:的情况下进行引用

$:b=5
$:c=10
$:a='$b $c'
$:result=`eval echo $a`
$:echo $result
5 10

我想做一个等价的运算,得到"result",这样我就不必做eval了。是否可以通过其他方式解析单个变量引用的多个变量?我希望在BASH 中做到这一点

简而言之,不,我认为您必须像在代码中那样使用eval来进行多变量间接引用。

Bash中似乎有两种类型的间接变量引用,一种是eval,另一种是特殊符号${!var}:

$ b=5
$ a=b
$ echo ${!a}
5

也许使用阵列可以满足您的需求:

$ b=5
$ c=10
$ a=(b c)
$ echo ${!a[0]} ${!a[1]}
5 10

http://tldp.org/LDP/abs/html/abs-guide.html#IVR

eval的声音相当可怕。。。

这里有一个更好的解决方案:

Bash模板:如何使用Bash从模板构建配置文件?

你只需要稍微调整一下,让它符合你的语法。

相关内容

最新更新