You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash中如何通过b_${a}形式调用b_name变量的内容?

Bash嵌套变量展开的解决办法

Bash不支持直接的嵌套变量展开,所以echo ${b_${a}}这种写法会报错,下面给你几种可行的解决方式:

  • 使用eval读取变量
    借助eval先完成内层变量的展开,再处理外层变量的引用:

    eval echo \${b_${a}}
    

    或者用引号包裹,效果一致:

    eval "echo \${b_${a}}"
    

    这里的反斜杠是为了让${a}先被展开成name,eval再解析${b_name}获取值。

  • 使用间接引用特性
    先构造出目标变量的完整名称,再用Bash的间接引用语法${!var}来读取:

    target_var="b_${a}"
    echo ${!target_var}
    

    这种写法比eval更直观,也更安全。

  • 使用命名引用(Bash 4.3+)
    如果你的Bash版本在4.3及以上,推荐用declare -n创建命名引用,这是最简洁安全的方式:

    # 创建变量时也可以用这种方式替代eval
    declare -n ref="b_${a}"
    ref=1
    # 读取变量
    echo ${ref}
    

    命名引用会让ref成为b_name的别名,操作ref就等同于操作b_name。

内容的提问来源于stack exchange,提问作者mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 23:12:04