bash中的嵌套变量赋值

时间:2016-02-11 22:55:42

标签: bash variables nested

我如何在bash中解决这个问题

我有一个名为`

的变量
DEV_IP=192.168.0.1

我有另一个名为

的变量
ENV_NAME=DEV

我如何致电ENV_NAME获取IP Addess?

喜欢:

echo ${ENV_NAME}_IP

这是我跑步时得到的

echo ${"$ENV"_IP}
-bash: ${"$ENV"_IP}: bad substitution

1 个答案:

答案 0 :(得分:1)

如果添加一个步骤,您可以使用Bash的元变量语法(间接扩展):

KEY="${ENV_NAME}_IP"
echo ${!KEY}

使用变量,输出:

192.168.0.1

来自TLDP entry on Shell paramter and variable expansion

  

如果" PARAMETER"的第一个字符是一个惊叹号,巴什   使用由" PARAMETER"的其余部分形成的变量的值。如   变量的名称;然后扩展这个变量   value用于替换的其余部分,而不是值   " PARAMETER"本身。这被称为间接扩张。