Jus*_*tin 3 bash variable-substitution
如何在 bash 中基于另一个变量引用一个变量?让我设置一下示例:
package="foobar"
# the variable I wish to reference is $foobar_darwin_amd64
# thus trying:
echo "$package_darwin_amd64"
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。
如果您的 shell 支持${!varname}
间接引用的形式,您可以执行以下操作(按照@Barmar 的建议):
$ foobar_darwin_amd64=pinto
$ package=foobar
$ varname="${package}_darwin_amd64"
$ echo ${!varname}
pinto
Run Code Online (Sandbox Code Playgroud)
否则,您可以使用eval
:
$ foobar_darwin_amd64=pinto
$ package=foobar
$ eval echo \$${package}_darwin_amd64
pinto
Run Code Online (Sandbox Code Playgroud)
也就是说,使用eval
有一些与之相关的风险,请参阅此链接以获取更多讨论。
归档时间: |
|
查看次数: |
25282 次 |
最近记录: |