【问题标题】:Shell script variable problemShell脚本变量问题
【发布时间】:2010-05-05 11:52:44
【问题描述】:

我正在尝试编写一个 shell 脚本来自动化我的工作。但我目前被困住了。 问题来了:

我有一个名为 var1 的变量(从 25 到 0 的递减数字 和另一个名为 var${var1} 这等于某个字符串。 然后,当我尝试通过 echo 在脚本中的任何位置调用 var${var1} 时,它会失败。 我尝试过 $[var$var1]、${var$var} 和许多其他方法,但每次它失败并给出 var1 的值或说操作数预期错误。 感谢您的帮助

【问题讨论】:

    标签: bash shell


    【解决方案1】:

    如果你使用数组可能会更好,但你可以使用间接:

    var25="some string"
    var1=25
    indirect_var="var$var1"
    echo ${!indirect_var}    # echoes "some string"
    

    【讨论】:

      【解决方案2】:

      变量展开只有一轮,不能直接做。你可以使用eval:

      eval echo \${var$var1}
      

      更好的解决方案是使用数组:

      i=5
      var[$i]='foo'
      echo ${var[$i]}
      

      【讨论】:

        【解决方案3】:

        听起来你需要 bash 变量间接。看看下面的链接。

        http://mywiki.wooledge.org/BashFAQ/006

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-07
          • 2010-12-12
          • 1970-01-01
          • 1970-01-01
          • 2018-08-10
          相关资源
          最近更新 更多