【问题标题】:Bash: How to reference a variable that contains another variable in its name?Bash:如何引用名称中包含另一个变量的变量?
【发布时间】:2014-02-21 15:18:01
【问题描述】:

我有一个运行变量,假设当前迭代的值为INDEX = 1122。我已经导出:

export PRO"$INDEX"=/some/fancy/dirry

现在我想引用这个变量,但如果我这样做:

echo $"PRO$INDEX"

我明白了:

PRO1122

相反,我想看看:

/some/fancy/dirry

很像echo $PRO1122 的结果。

但是,我当然不能在循环中硬编码值 1122

【问题讨论】:

    标签: bash variables syntax


    【解决方案1】:

    BASH 已经有了变量引用机制。

    你可以这样做:

    v="PRO$INDEX"
    echo "${!v}"
    /some/fancy/dirry
    

    【讨论】:

      【解决方案2】:

      使用eval:

      eval echo '$PRO'$INDEX
      

      但您似乎应该使用数组而不是将索引嵌入到变量名中。

      【讨论】:

      • eval 只能用于不支持某种形式的间接参数扩展的 shell(如 POSIX sh,它也缺乏数组支持)。
      猜你喜欢
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 2012-03-21
      相关资源
      最近更新 更多