Linux环境变量定义但不反映价值

时间:2015-10-05 06:31:19

标签: linux variables environment

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

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

现在,如果我echo $REL$MEL可行。

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

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

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

我也理解,在执行test$REL时,$作为标识符。 如果这不可能那么如何解释这个限制? 文档中禁止显示的任何用法示例都会对我有所帮助。

1 个答案:

答案 0 :(得分:3)

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

$ echo ${REL}test
footest

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