什么是引用符号
在bash中许多字符有特殊的含义,如果希望bash忽略某些字符的特殊含义,可以使用一种称为"引用"的技术,通知Shell暂时忽略被引用字符的特殊含义,将其作为普通字符处理
特殊字符表
https://blog.51cto.com/hjh524/1565097
三种引用符号
转义符:\
将转义符\放在Shell特殊字符前则Shell忽略该字符原有的含义
root@wang-Lenovo-ideapad-100S-14IBR:/home# \#
#:未找到命令
root@wang-Lenovo-ideapad-100S-14IBR:/home# #
单引号:'
将字符串放在一段单引号之间,则单引号内的所有字符的特殊含义都被忽略,而只做普通字符解释
root@wang-Lenovo-ideapad-100S-14IBR:/home# string=$path root@wang-Lenovo-ideapad-100S-14IBR:/home# echo $string root@wang-Lenovo-ideapad-100S-14IBR:/home# string='$path' root@wang-Lenovo-ideapad-100S-14IBR:/home# echo $string $path
双引号:"
双引号与单引号类似,但是只有大部分特殊字符被看作普通字符,$、|、"、'依旧有其特殊含义
root@wang-Lenovo-ideapad-100S-14IBR:/home# string="$HOME and \$HOME" root@wang-Lenovo-ideapad-100S-14IBR:/home# echo $string /root and $HOME
命令替换符
命令替换符`(反引号)与引用字符作用恰好相反
root@wang-Lenovo-ideapad-100S-14IBR:/home# string="pwd" root@wang-Lenovo-ideapad-100S-14IBR:/home# echo $string pwd root@wang-Lenovo-ideapad-100S-14IBR:/home# string="`pwd`" root@wang-Lenovo-ideapad-100S-14IBR:/home# echo $string /home
#
任何#后面的数据将被全部视为注释文字而被忽略(#!除外)