(1)轉義字符“\”
如果將“\”放到特殊字符前面,shell就忽略這些特殊字符的原有含義,
把它們當作普通字符對待,例如:
[root@WEBServer ~]#ls
abc?* C:\backup
[root@WEBServer ~]#mv abc\?\* abc
[root@WEBServer ~]#mv C\:\\backup backup
上⾯是將abc?*重命名為abc,將C:\backup重命名為backup。因為⽂件
名中包含特殊字符,所以都使⽤了轉義字符“\”。
(2)單引號“ ' ”
如果將字符串放到⼀對單引號之間,那么字符串中所有字符的特殊含
義將被忽略,例如:
[root@WEBServer ~]#mv C\:\\backup backup
[root@WEBServer ~]#mv 'C:\backup' backup
上面兩條命令完全等效
(3)雙引號“""”
雙引號的引用與單引號基本相同,包含在雙引號內的大部分特殊字符
可以當作普通字符處理,但是仍有一些特殊字符即使⽤雙引號括起來,也
仍然保留自己的特殊含義,比如“$”、“\”和“`”。
[root@WEBServer ~]#str="The \$SHELL Current shell is $SHELL"
[root@WEBServer ~]#str1="\$$SHELL"
[root@WEBServer ~]#echo $str
The $SHELL Current shell is /bin/bash
[root@WEBServer ~]#echo $str1
$/bin/bash
從上面的輸出可以看出,“$”和“\”在雙引號內仍然保留了特殊含義。
[root@WEBServer ~]# str="This hostname is `hostname`"
[root@WEBServer ~]# echo $str
This hostname is WEBServer
上面的輸出中,字符“`”在雙引號中也保留了自己的特殊含義。
