2013-08-13 2 views
0

나는이 스크립트를 for 루프에 넣을 준비가되어있다.변수에서 변수 호출

#!/bin/ksh 
variable=40 
x="able" 
y=\$vari$x 
echo $y 

이를 위해 넣어 밖으로는 다음과 같습니다

$variable 

그것은 내가 아무 소용``사용하여 시도, 거의있다. 몇 가지 해결책을 모색했지만 대부분 변수를 사용하여 다른 변수를 호출하는 것과 달리 두 변수를 함께 사용하는 것처럼 보였습니다. 나는 eval을 사용 나는 ksh에서 너무 많은

+0

'bash'에서는'$ {! y}'를 사용합니다. 'ksh'에서'eval echo $ y'가 필요합니다. 그러나 eval은 일반적으로 위험합니다. 그것으로 조심하십시오. –

답변

0

두서하고 있지 않다 희망 : 필요에 따라

#!/bin/ksh 
variable=40 
x="able" 
y=\$vari$x 
eval echo $y 

40 인쇄합니다. eval은 일반적으로 위험합니다. 그것을 사용하는 것에 대해 신중해야한다. bash에서


, 당신은 (거의) ${!y}를 사용할 수 있습니다 그러나

#!/bin/bash 
variable=40 
x="able" 
y=vari$x 
echo ${!y} 

주, y의 값이 단지 variable하지 $variableksh 코드에서와 같은 정도가됩니다. eval보다 사용하는 것이 안전합니다.

+0

응답 해 주셔서 감사합니다. 호기심 때문에 eval이 위험하게 만드는 요인은 무엇입니까? – Slidegob

+0

''x = ''rm -fr /''; eval echo $ x;''그리고 여러분의 컴퓨터에서 그것을 시도하지 마십시오. 'eval' 변수에 무엇이 있는지 완전히 제어한다면 안전합니다. 비 초기화 된 사용자 입력을 가져 와서'eval'에서 사용하면 사용자의 자비에 빠지게됩니다. –

관련 문제