2011-08-13 6 views
4

쉘 스크립트에 문자열을 인수로 전달합니다. 및쉘에서 변수 대신 문자열을 사용합니다.

나는 확실히 내가 뭔가를 누락 알고 .. 전달 된 인수가이

if [ ! -z ${$1} ] ; then 
echo yes! $1 is a variable and its value is ${$1} 
fi 

같은 변수

어떤 경우 쉘 스크립트 말해해야하지만이 나에게 나쁜 대체 ERR을 제공합니다. 도와 줘!

예의 사용은 :

$ myscript.sh HOME 
yes! HOME is a variable and its value is /home/raj 

답변

4

이 구문은 다음과 같습니다

${!VAR} 

예 : 여기

$ function hello() { echo ${!1}; } 
$ hello HOME 
/home/me 
+0

굉장! 고마워 .. :) – raj

+0

니스! 할당을 위해서, 즉'eval $ 1 = foo'를 대체 할 수있는 방법이 있습니까? – user123444555621

+1

변형에 대해서는이 기사를 참조하십시오. [간접 지정] (http://bashify.com/?Userful_Techniques:Indirect_Variables:Indirect_Assignment) – Mat

관련 문제