bash引用
关闭bash字符的特殊含义,叫引用
反斜杠
含特殊意义的字符
~ |
用户的主目录 |
` |
命令替换 |
# |
注释 |
$ |
变量引用 |
& |
把任务放到后台执行 |
* |
通配符,代表任意个任意字符 |
? |
通配符,代表一个任意字符 |
() |
在子Shell中执行 |
\ |
引用后面的一个字符 |
| |
管道 |
[] |
指定一个字符集的通配符 |
{} |
创建一个命令块 |
; |
命令分隔符 |
‘‘ |
单引号引用字符 |
"" |
双引号引用字符 |
> |
标准输出重定向 |
< |
标准输入重定向 |
拓展是执行命令时Shell进行的。如果反斜杠后的字符没有特殊含义,shell也不会把反斜杠传给命令
单引号
单引号会使所有特殊字符失去特殊含义,高脱特殊,居家旅行必备。
不需要把整个字符串引起来,只要引起特殊字符就行。
如果单引号内需要单引号,答案是无解的。只能用反斜杠或双引号,你TM是在逗我
事实告诉我们要灵活,反斜杠、单引号、双引号一块上。
双引号
为什么存在双引号,因为程序员总是懒惰的,程序员希望在引用大多数特殊字符的同时,保留变量或命令替换。我们希望保留$,`,和 \的含义。为什么\的特殊含义保留,因为有特殊字符,就有反斜杠 \。实践证明,只有后面字符为 ",`,$,或\,时 \才有特殊含义。功夫不稳定的。
当希望把含有空格的字符串当作一个整体时,用双引号吧。
双引号里是可以用双引号的。
逃逸序列
有些命令会接受反斜杠加一个普通字符构成的逃逸序列。逃逸序列表达了某种特殊的含义,它并不是引用。
在Shell命令中还要对逃逸序列的反斜杠进行转义,所以会出现这样的东西:
echo -n -e hi,\\nhow are you?\\n
-e选项表示echo接受逃逸序列。
本文出自 “重剑无锋” 博客,请务必保留此出处http://qianyang.blog.51cto.com/7130735/1620561
原文地址:http://qianyang.blog.51cto.com/7130735/1620561