2014-10-30 67 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