- 单引号括起字符串里面的$不进行演算
- 双引号括起字符串里面的$进行演算
- 脱字符`可以转义单、双引号,及$符号
- 双引号里的$var进行演算时,var只能是一个普通变量,如果要在双引号里嵌入需要演算出结果的语句,则需要通过"$(expressions)"的形式
- 双引号里的$var,如果var后面跟着一个冒号,则var会被当做一个namespace进行解释,并继续解析冒号后面的token,然后把var:token当做一个完整的变量来进行演算,但若作用域不是我们的本意,则需要用${var}的形式明确告诉解释器var是一个变量,而不是namespace
- 结合上一条,若$var是一个变量,则"${var}"与"$($var)"等价,即用"$(expressions)"总是没错的
|