2010-04-24 72 views
3

嵌套变量阻止我试图更广泛地使用bash ......考虑以下几点:如何在UNIX/BASH中扩展变量?

export SYS_DIR='/home/${LOGNAME}/sys' 
export APP_DIR='${SYS_DIR}/app' 

我总是

> set 
APP_DIR=/home/${LOGNAME}/sys/app 

为什么结了?我笑

,以及如何得到我想要的东西=/

我并不想解决$ {$ {VAR}},而是实际的字符串如上图所示

+0

单引号中的字符串未扩展。 – 2010-04-24 15:30:34

+0

mwuaha我刚才注意到了!大声笑 – qodeninja 2010-04-24 15:32:07

回答

10

用双引号

export APP_DIR="${SYS_DIR}/app" 

单引号将所有内容视为文字,而不是评估。

+0

此外,考虑通过谷歌的所有东西bash看“高级Bash指南”;) – 2010-04-24 15:36:08

+0

但是,别名评估虽然变量是单引号。为什么?例如。 '别名abc ='cd $ {HOME}'' – syam 2013-06-19 05:45:14