單引號:
可以說是所見即所得:即將單引號內的內容原樣輸出,或者描述為單引號裡面看到的是什麼就會輸出什麼。單引號''是全引用,被單引號括起的內容不管是常量還是變數者不會發生替換。
雙引號:
把雙引號內的內容輸出出來;如果內容中有命令、變數等,會先把變數、命令解析出結果,然後在輸出最終內容來。雙引號""是部分引用,被雙引號括起的內容常量還是常量,變數則會發生替換,替換成變數內容。
不加引號:
不會將含有空格的字串視為乙個整體輸出, 如果內容中有命令、變數等,會先把變數、命令解析出結果,然後在輸出最終內容來,如果字串中帶有空格等特殊字元,則不能完整的輸出,需要改加雙引號,一般連續的字串,數字,路徑等可以用。
使用規則:
一般常量用單引號''括起,如果含有變數則用雙引號""括起。
最大不同:
單引號與雙引號的最大不同在於雙引號仍然可以保有變數的內容,但單引號內僅能是一般字
元,而不會有特殊符號
使用舉例:
「」號裡面遇到$,\等特殊字元會進行相應的變數替換
『』號裡面的所有字元都保持原樣
對於字串,兩者相同
匹配模式也大致相同
但有一些區別非常容易混淆
grep "$a" file #引用變數a,查詢變數a的值
grep '$a' file #查詢「$a」字串
grep "\\" file #grep: trailing backslash(不知原因)
grep '\\' file #查詢『\』字元
1、$ 美元符
2、\ 反斜槓
3、` 反引號
4、" 雙引號
這四個字元在雙引號中是具有特殊含義的,其他都沒有,而單引號使所有字元都失去特殊含義
如果用雙引號,查詢乙個\,就應該用四個\:
grep "\\\\" file 這樣就對了,這樣等同於:
grep '\\' file
第一條命令shell把四個\,轉義成2個\傳遞給grep,grep再把2個\轉義成乙個\查詢
第二條命令shell沒轉義,直接把2個\傳遞給grep,grep再把2個\轉義成乙個\查詢
其實grep執行的是相同的命令
單引號和雙引號
char p1 1 char p2 1 1 的ascii碼值為49 0和49位址處為作業系統使用,故訪問這些位址如printf s,s,s p1,p2,p3 會產生段錯誤。printf n n的ascii碼值為10,同理,段錯誤。a 表示字元常量,在記憶體中佔1個位元組,a 1表示 a 的ascii...
單引號( )和雙引號( )
關鍵是要養成良好的習慣.單引號 一般用在單字元,如 c 雙引號 一般用在字串,如 abc 如果巢狀使用的話,一般用交替方法,尤其是html中.如,也可以改成.在分割乙個字串時要用到str.split或者regex.split。簡單的單個字串的替換,直接用字串.split 單個字串 多個字串的替換用r...
mysql單引號 mysql單引號和雙引號
表名,列名最好用 esc下面那個,不用 會出錯 這就要從雙引號和單引號的作用講起 雙引號裡面的字段會經過編譯器解釋然後再當作html 輸出,但是單引號裡面的不需要解釋,直接輸出。例如 abc i love u echo abc 結果是 i love u echo abc 結果是 abc echo a...