Linux里的双引号、单引号和反向单引号有不同的用法,不好记忆,这里总结一下。
单引号''
单引号是一个强引用的符号。什么意思呢?它忽略了所有的特殊符号,比如$、\这样的符号,单引号里的内容全部看做普通的字符串。
[root@CentOS7 ~]#echo '$PATH'
$PATH
[root@CentOS7 ~]#
可以看到,单引号里面的变量符号$被当做一个普通的字符输出。
tips:它比较强势,忽略了所有特殊符号,我们称之为强引用。
双引号""
双引号是一个弱引号的符号,忽略了部分特殊符号,但$、\还保留着特殊含义。
[root@CentOS7 ~]#echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
还有一点值得一说的是,默认情况下,如果命令里的变量没有带引号,系统会输出双引号的结果:
[root@CentOS7 ~]#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
记忆小tips:双引号相比单引号的引用要弱,忽略了部分特殊符号,我们称之为弱引用。
反向单引号``
反向单引号在键盘上数字1的左方。它的作用是把引号里面的命令先执行一遍,引号里的命令输出的结果作为另一个命令的参数。
[root@CentOS6 ~]#echo "I am `whoami` "
I am root
[root@CentOS6 ~]#
以上面的例子说明:当执行echo "i am whoami
"这条命令时,系统会先执行反向单引号whoami
这条命令,输出结果的“root”变成echo的参数。最后变成执行echo “I am root”。