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”。