Bashで他の変数に基づいて変数を参照する方法は?はいを設定します。
package="foobar"
# the variable I wish to reference is $foobar_darwin_amd64
# thus trying:
echo "$package_darwin_amd64"
しかし、これはうまくいきません。
ベストアンサー1
シェルが${!varname}
間接的な形式をサポートしている場合は、次のことができます(@Barmarが提案したように)。
$ foobar_darwin_amd64=pinto
$ package=foobar
$ varname="${package}_darwin_amd64"
$ echo ${!varname}
pinto
それ以外の場合は、次のものを使用できますeval
。
$ foobar_darwin_amd64=pinto
$ package=foobar
$ eval echo \$${package}_darwin_amd64
pinto
つまり、eval
使用に関連するいくつかのリスクがあります。このリンクを見たもっと議論してみてください。