2011-08-13 45 views
4

我將一個字符串作爲參數傳遞給一個shell腳本。而shell腳本應該告訴我,如果傳遞的參數是一個變量用一個字符串代替shell中的變量

像這樣

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/?Useful_Techniques:Indirect_Variables:Indirect_Assignment) – Mat