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


9

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

基本的にmake書いてできることをしたいです$($(var))

私は${$var}最も簡単な解決策であるものを使用しようとしましたbashが、このエラーが発生します:

bash: ${$var}: bad substitution

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

私は何をしようとしています(すべての引数反復処理することで$1$2$3反復変数を使用してプログラムに、...)を、私は間接せずにこれを行うことはできません。

回答:


13

とを持っている場合はvar1=foo、と言ってfoo=bar取得できます。ただし、位置パラメータを反復処理する場合は、ほぼ確実に、bar${!var1}

for i in "$@"; do
    # something
done

複数レベルの間接参照を追加する方法はありますか?
wefwefa3 2015

1
すぐに見つけられるというわけではありません。の明白な推測は${!!var1}機能しません。ただし、いつでも手動で実行できますtmp=${!var1}; echo ${!tmp}
トム・ハント

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.