QUOTING
字符序列(用户输入)-->bash解析(去引用)-->真正的字符序列(交给命令)
有些命令,会对输入的字符序列进一步处理
特别注意,这些都是处理用户的输入,不会处理变量展开后的字符串
引用的三种机制:
1 escape character
2 single quotes
3 double quotes
转义符
除了\<newline>之外,保留所有后续字符的字面意思
the \<newline> is treated as a line continuation(即被完全忽略)
单引号
单引号无法引用自己
$'string'会进行ANSI C的特殊转义处理
双引号
$"string"会进行locale的考虑
除了以下这些特殊字符,都保留字面意思
1 '$',进行变量替换
2 '`',进行命令替换
3 '\',针对 $ ` " \ <newline>这些字符进行转义
对于 ! 历史命令展开的特殊处理,详细看man bash(我觉的没啥规律,挺反人类)