2015-10-05 45 views
1

請幫我理解並可能解釋這一點。 假設我有2個ENV變量:已定義Linux環境變量但未反映值

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

現在,如果我echo $REL$MEL它的工作原理。

如果我echo test$REL,它的工作原理(命名爲testFoo)

但爲什麼Linux無法這樣使用時識別變量:$RELtest

我明白這看起來像最愚蠢的問題,但有沒有辦法告訴系統在已設置的env變量中查找字符串的匹配部分並替換該部分?

我也明白,在做test$REL時,它是$作爲一個標識符。 如果這不可能,那麼如何解釋限制? 禁止顯示此文檔的任何使用示例都會對我有所幫助。

+0

你需要括號來表示其文本部分是變量名whenit不是所有的人。 'echo「$ {REL}測試」' – tripleee

回答

3

隨着$RELtest,外殼將其解釋爲變量RELtest的價值 - 這是無法弄清楚,你的意思是REL其次是文字test因爲沒有分隔符。你需要更明確 - 用{}引用變量:

$ echo ${REL}test 
footest 

參見When do we need curly braces in variables using Bash?