2013-08-12 15 views

Odpowiedz

18

Jak to:

eval c=\$$var 

lepszym, bezpieczniejszym sposobem jest użycie zadnie:

c=${!var} 
+1

To wystarczy! – CocaCola

+0

Dziękuję za to! Zmagałem się, by zmienić zmienną w powłoce burty na dobre kilka godzin. Późniejsza opcja zawiera wiele miejsc, ale działa tylko w 'bash', ale ta pierwsza działa również w' sh'. – DanielM

11
newVariable=$(eval echo \$$var) 
+0

To wydaje się działać, ale powoduje to, że wartość ma znak dolara jako pierwszą postać? Próbowałem \ $ var, ale zmienne w moim ciągu nie są już rozszerzane. Jakieś pomysły? –

+0

'\' jest znakiem escape, jeśli umieścisz go przed '$', to na pewno skończysz. Spróbuj '$ var'. Lub użyj drugiego przykładu w poście powyżej. – hashier

0

Może to osiągnąć stosując powrotem cytat - `

c=`$var 
Powiązane problemy