1、單引號和雙引號linux
首先,單引號和雙引號,都是爲了解決中間有空格的問題。ide
空格在linux中時做爲一個很典型的分隔符,好比 string1=this is a string,這樣執行會報錯。爲了不這個問題,所以就產生了單引號和雙引號。他們的區別在於,單引號將剝奪其中的全部字符的特殊含義,而雙引號中 的'$'(參數替換)和'`'(命令替換)是例外。因此,二者基本上沒有什麼區別,除非在內容中遇到了參數替換符$和命令替換符`。this
看下面的例子:
num=3
echo ‘$num’
$num
echo 「$num」
3
若是須要在雙引號」」裏面使用這兩種符號,須要用反斜槓轉義。
spa
2、反引號``orm
這個東西的用法,我百度了一下,和$()是同樣的。在執行一條命令時,會先將其中的 ``,或者是$() 中的語句看成命令執行一遍,再將結果加入到原命令中從新執行,例如:
echo `ls`
會先執行 ls 獲得xx.sh等,再替換原命令爲:
echo xx.sh
最後執行結果爲
xx.sh
那麼,平時咱們遇到的把一堆命令的執行結果輸出到一個變量中,須要用這個命令替換符括起來,也就能夠理解了。
這裏又涉及到了一個問題,雖然很多系統工程師在使用替換功能時,喜歡使用反引號將命令括起來。可是根據POSIX規範,要求系統工程師採用的是$(命令)的形式。因此,咱們最好仍是遵循這個規範,少用``,多用$()string