Bash手册在标题为双引号的第3.1.2.3节中说:
用双引号('“')引起来的字符将保留所有引号内的字符的文字值,但'$','`','\'除外,并且在启用历史记录扩展时,会使用'!'。
目前,我关心的是单引号('
)。
在上一节第3.1.2.2节中描述的特殊含义是:
将字符括在单引号('
)中可保留引号内每个字符的字面值。即使在单引号前加反斜杠,也不能在单引号之间引起单引号。
结合两个论述,
echo "'$a'"
其中a
未定义变量(因此$a
=空字符串),应$a
在屏幕上打印,因为''
,如果它在内部具有特殊含义,则可以避免$
特殊解释。而是打印''
。为什么这样?
’, ‘\’, and, when history expansion is enabled, ‘!’." in the manual. But now reading it again I realized the second character is not single quote, ("'") but tilde ("
”)除外。我感谢您的快速回复,谢谢!