單引號(hào)''是全引用,被單引號(hào)括起的內(nèi)容不管是常量還是變量者不會(huì)發(fā)生替換皇钞;
雙引號(hào)""是部分引用悼泌,被雙引號(hào)括起的內(nèi)容常量還是常量,變量則會(huì)發(fā)生替換夹界,替換成變量?jī)?nèi)容馆里!
一般常量用單引號(hào)''括起隘世,如果含有變量則用雙引號(hào)""括起!
單引號(hào)與雙引號(hào)的最大不同在于雙引號(hào)仍然可以保有變數(shù)的內(nèi)容鸠踪,但單引號(hào)內(nèi)僅能是一般字
元 丙者,而不會(huì)有特殊符號(hào)
“”號(hào)里面遇到$,\等特殊字符會(huì)進(jìn)行相應(yīng)的變量替換
‘’號(hào)里面的所有字符都保持原樣
對(duì)于字符串营密,兩者相同
匹配模式也大致相同
但有一些區(qū)別非常容易混淆
grep "$a"file#引用變量a,查找變量a的值
grep '$a'file#查找“$a”字符串
grep "\\"file#grep: Trailing backslash(不知原因)
grep '\\'file#查找‘\’字符
1械媒、$ 美元符
2、\ 反斜杠
3评汰、` 反引號(hào)
4纷捞、" 雙引號(hào)
這四個(gè)字符在雙引號(hào)中是具有特殊含義的,其他都沒有被去,而單引號(hào)使所有字符都失去特殊含義
如果用雙引號(hào)主儡,查找一個(gè)\,就應(yīng)該用四個(gè)\:
grep "\\\\" file 這樣就對(duì)了惨缆,這樣等同于:
grep '\\' file
第一條命令shell把四個(gè)\,轉(zhuǎn)義成2個(gè)\傳遞給grep糜值,grep再把2個(gè)\轉(zhuǎn)義成一個(gè)\查找
第二條命令shell沒轉(zhuǎn)義,直接把2個(gè)\傳遞給grep坯墨,grep再把2個(gè)\轉(zhuǎn)義成一個(gè)\查找
其實(shí)grep執(zhí)行的是相同的命令寂汇。