web-dev-qa-db-ja.com

シェルで変数を間接的に展開する

bashシェルの変数を間接的に参照する必要があります。

基本的には、$($(var))を記述して、makeで何ができるかを知りたいと思います。

bashで最も簡単な解決策である${$var}を使用してみましたが、次のエラーが発生します。

bash: ${$var}: bad substitution

これを行う方法はありますか?

私がやろうとしているのは、反復変数を使用してプログラムへのすべての引数($1$2$3、...)を反復することであり、間接参照なしではこれを実行できません。 。

9
wefwefa3

あなたが持っている場合 var1=fooおよびfoo=barbarを取得するには${!var1}。ただし、位置パラメータを反復処理する場合は、ほぼ確実に実行することをお勧めします。

for i in "$@"; do
    # something
done
13
Tom Hunt

/bin/bashの使用:

foo=bar
test=foo
echo ${!test}

# prints -> bar
3
Nick Grealy