【问题标题】:Getting bad substitution error in shell script在 shell 脚本中出现错误的替换错误
【发布时间】:2022-01-13 09:41:12
【问题描述】:

我有一个变量COUNTRY="INDIA"

和另一组变量:- INDIA_POPULATION="5,00,00,000", CHINA_POPULATION="6,00,00,000"。

在脚本中,我尝试使用命令调用它们:-

回声 ${ ${COUNTRY}_POPULATION }

但是我得到了错误的替换 错误。谁能告诉我如何解决它??

【问题讨论】:

  • 您不能在 bash 中嵌套参数扩展。也许在您的情况下,使用关联数组 POPULATION 会更有意义,它具有键 INDIACHINA
  • 请不要在图片中显示文字。它们不可搜索,不可复制粘贴,而且比需要的重得多。此外,它们对可访问性产生负面影响。请复制粘贴您的问题中的文本和format it properly,而不是。

标签: linux bash shell sh


【解决方案1】:

您放错了括号:{$COUNTRY}_POPULATION 应该是 ${COUNTRY}_POPULATION。但即便如此,它也不会像你期望的那样工作。使用 bash 间接扩展

$ name="${COUNTRY}_POPULATION"
$ echo "${!name}"
5,00,00,000

或者,如果您的 bash 版本 >= 4.3,您也可以使用 refname

$ declare -n name="${COUNTRY}_POPULATION"
$ echo "$name"
5,00,00,000

【讨论】:

    猜你喜欢
    • 2018-05-28
    • 1970-01-01
    • 2022-01-14
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    相关资源
    最近更新 更多