【问题标题】:bash, substitute part of variable by another variablebash,用另一个变量替换变量的一部分
【发布时间】:2012-08-24 16:48:09
【问题描述】:
#!/bin/bash SUNDAY_MENU=面包 MONDAY_MENU=苹果 今天=星期一 ECHO "I want ${${TODAY}_MENU}" # 不起作用,替换错误 ECHO "I want ${`echo $TODAY`_MENU}" # 不起作用,替换错误

有什么想法吗?

【问题讨论】:

    标签: bash substitution


    【解决方案1】:

    像这样使用variable indirection

    varname=${TODAY}_MENU
    echo ${!varname}
    

    但是,如果您使用的是 Bash 4 或更高版本,则最好使用 associative array

    menu=([sunday]=bread [monday]=apples)
    echo ${menu[$TODAY]}
    

    【讨论】:

      【解决方案2】:

      我使用 eval 函数

      #!/bin/bash
      
      SUNDAY_MENU=BREAD
      MONDAY_MENU=APPLES
      
      TODAY=MONDAY
      
      eval TODAY_MENU=\$\{${TODAY}_MENU\}
      
      echo "I want ${TODAY_MENU}"
      

      【讨论】:

        猜你喜欢
        • 2018-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-17
        • 2015-09-12
        • 2015-10-03
        • 1970-01-01
        • 2012-10-16
        相关资源
        最近更新 更多