bash bad substitution - 从另一个访问环境变量

时间:2017-12-07 23:41:49

标签: bash

如何从另一个环境中访问环境变量?我的shell中有以下内容

#!/usr/bin/env bash

set -x

export A_version=1.0.0

component=A

echo ${${component}_version}}

运行后的bash脚本给我

temp.sh: line 9: ${${component}_version}}: bad substitution

1 个答案:

答案 0 :(得分:1)

您可以使用eval执行此操作。以下是打印1.0.0的脚本的工作版本:

export A_version=1.0.0
component=A
eval "echo \$${component}_version"

有关详细信息,请参阅此页:

http://tldp.org/LDP/abs/html/ivr.html

更新:在Bash中执行相同操作的更安全的方法是:

export A_version=1.0.0
component=A
var=${component}_version; echo "${!var}"

请注意,您必须使用bash运行此脚本,而不是sh