Linux Bash环境下对单引号、双引号和反引号的处理

       Bash在扫描命令行的过程中,类似于编译器的预编译过程。Bash首先在文本层次上,优先解释所有的特殊字符,再对转换完成的新命令行进行内核的系统调用。

       有三种转义符:单引号,双引号,反斜杠。如要要让通配符,或者元字符变成普通字符,就需要用到转义符.

字符 说明
‘’(单引号) 又叫硬转义,其内部所有的shell 元字符、通配符都会被关掉。注意,硬转义中不允许出现’(单引号)。
“”(双引号) 又叫软转义,其内部只允许出现特定的shell 元字符:$用于参数代换 `用于命令代替
\(反斜杠) 又叫转义,去除其后紧跟的元字符或通配符的特殊意义。

具体可参看:点击打开链接

(1) 单引号(''):    在命令行中,单引号引用的部分的所有特殊字符均按照普通字符解释,如下所示:


(2)反引号(``):  反引号作用相当于命令替换,Bash处理时引用的部分会被优先执行,执行结果被替换到外层的命令行文本中;反引号可以嵌套使用,但是嵌套时内部的反引号必须进行转义处理。

(先执行ls,将结果作为echo的输出)

(3)双引号(""):  双引号引用的部分,仅解释美元符号$、转义符\(目前测试发现只进行如下字符的转义--\$、\"、\\、)和反引号`,解释后的文本仅按照普通文字处理,即同单引号的处理。


(4)反斜杠(\): 如上所述,反斜杠具有转义的作用。除此之外,其可用于命令换行,并作为echo -e的特殊字符说明,处理时不会将它当成一般文字输出。

Linux Bash环境下对单引号、双引号和反引号的处理_第1张图片(命令换行示例)

(特殊字符处理示例)

特殊字符包括以下字符:

\a 发出警告声; 
\b 删除前一个字符; 
\c 最后不加上换行符号; 
\f 换行但光标仍旧停留在原来的位置; 
\n 换行且光标移至行首; 
\r 光标移至行首,但不换行; 
\t 插入tab; 
\v 与\f相同; 
\ 插入\字符; 

\nnn 插入nnn(八进制)所代表的ASCII字符。


你可能感兴趣的:(linux)