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

関連する問題