【问题标题】:Linux environmental variable defined but not reflecting value [duplicate]Linux环境变量已定义但不反映值[重复]
【发布时间】:2016-01-01 18:00:55
【问题描述】:

请帮助我理解并可能解释这一点。 假设我有 2 个环境变量:

$REL --> foo
$MEL --> bar

现在如果我 echo $REL$MEL 它可以工作。

如果我echo test$REL,它可以工作。(testfoo)

但是为什么Linux在这样使用时无法识别变量:$RELtest

我知道这看起来是最愚蠢的问题,但有没有办法告诉系统在已设置的环境变量中查找字符串的匹配部分并替换该部分?

我也明白,在做test$REL 时,它是$ 作为标识符。 如果这是不可能的,那么如何解释限制? 文档中显示禁止的任何使用示例都会对我有很大帮助。

【问题讨论】:

  • 您需要大括号来指示文本的哪些部分是变量名,而不是全部。 echo "${REL}test"

标签: linux variables environment


【解决方案1】:

对于$RELtest,shell 将其解释为变量RELtest 的值——它无法确定您的意思是REL 后跟文字test,因为没有分隔符。您需要更加明确 - 使用 {} 引用变量:

$ echo ${REL}test
footest

另见When do we need curly braces in variables using Bash?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-07
    • 2014-10-09
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 2021-02-11
    • 2021-03-28
    • 1970-01-01
    相关资源
    最近更新 更多