在UNIX/BASH中如何扩展变量?

3

嵌套变量阻碍了我更广泛地使用BASH... 请考虑以下内容:

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

我总是最终得到的是:
> set
APP_DIR=/home/${LOGNAME}/sys/app

为什么?哈哈

我该如何得到我想要的东西 =/

我不是试图解决 ${${var}},而是像上面显示的实际字符串。


单引号中的字符串不会被扩展。 - anon
我刚刚注意到了!哈哈 - qodeninja
1个回答

10

使用双引号

export APP_DIR="${SYS_DIR}/app"

单引号将其内部所有内容视为字面量,不进行计算。


此外,考虑通过谷歌查看“高级Bash指南”以获取有关Bash的所有信息 ;) - Victor Sorokin
但是,别名评估虽然变量在单引号中,为什么?例如:alias abc='cd ${HOME}' - syam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接