2014-10-30 105 views
1

内使用的变量我有一个名为壳牌:另一个变量名(串联)

ENV_URL_TEST1 

ENV_URL_TEST2 

ENV_URL_INT1 

等几个全局变量。

我的问题: - >我要呼应使用另一个变量($ ENV)这些变量的值:

echo ${ENV_URL_$ENV} 

我有字符串“TEST1”或“TEST2”或“INT1”等在那个$ ENV变量中。

上述尝试导致错误的替换错误。 有没有解决我的问题或者是不可能的?

p.s.想在jenkins post build步骤中使用这个,意思是执行shell step。

+0

什么是你$ ENV变量? – ghostdog74 2014-10-30 08:01:56

+0

“我在那个$ ENV变量中有字符串”TEST1“或”TEST2“或”INT1“等。” – user1168785 2014-10-30 08:02:39

回答

2

使用eval

$ ENV=TEST1 
$ ENV_URL_TEST1='test_string' 
$ eval echo \${ENV_URL_$ENV} 
test_string 
$ eval NEW_VAR=\${ENV_URL_$ENV} 
$ echo $NEW_VAR 
test_string 
+0

谢谢,但不起作用,我的代码: echo“ENV:$ ENV” eval echo \ $ {ENV_URL_ $ ENV}输出控制台:+ echo'ENV:INT1' ENV:INT1 + eval echo'$ {ENV_URL_INT1}' ++ echo – user1168785 2014-10-30 08:23:34

+0

您确定ENV_URL_INT1有价值吗? – klashxx 2014-10-30 09:25:41

+0

OMG你是对的,我的错,确实改变了stackoverflow的名字...现在它的工作原理:)是否有机会将值存储到新变量而不是回显它? – user1168785 2014-10-30 09:50:22