変数の参照 bash 変数

変数の参照 bash 変数

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使用に関連するいくつかのリスクがあります。このリンクを見たもっと議論してみてください。

おすすめ記事