linux 中的單引號 和雙引號有什麼區別

2021-07-05 05:46:46 字數 909 閱讀 9121

單引號與雙引號的最大不同在於雙引號仍然可以保有變數的內容,但單引號內僅能是

一般字元 ,而不會有特殊符號。我們以底下的例子做說明:假設您定義了乙個變數,

name=vbird ,現在想以 name 這個變數的內容定義出 myname 顯示 vbird its me 這

個內容,要如何訂定呢?

[root@linux ~]# name=vbird

[root@linux ~]# echo $name

vbird

[root@linux ~]# myname="$name its me"

[root@linux ~]# echo $myname

vbird its me

[root@linux ~]# myname='$name its me'

[root@linux ~]# echo $myname

$name its me

發現了嗎?沒錯!使用了單引號的時候,那麼 $name 將失去原有的變數內容, 僅為

一般字元的顯示型態而已!這裡必需要特別小心在意!

說到引號的區別,先要說為什麼要用引號,shell命令中有些特殊字元,比如$,^,*等等,如果我們想要把這些特殊字元的功能關掉的話就必須使用引號或者斜槓\,比如 ls "a*",或者ls 'a*',或者ls a\*這就會輸出名字為a*的檔案,而不是以a開頭的檔案。

不說斜槓,只說單引號和雙引號的區別,它們在shell中的引文的叫法不一樣,雙引號叫soft quote,單引號叫hard quote,顧名思義,單引號更加嚴格,比如overawe的例子,對於$符號,單引號一樣會關掉它的功能,而雙引號不會,它會把它當成變數來替換掉,有興趣的話你可以比較單引號套雙引號的變數和雙套單的變數輸出的區別,a=1;echo "'$a'" ;echo '"$a"'

單引號和雙引號

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...

linux 單引號,雙引號,反引號

目的 為了保護文字不被轉換.除了他本身.就是說除去單引號外,在單引號內的所有文字都是原樣輸出.1.root jszwl161 sp49ep9 echo she is crying help 3.root jszwl161 sp49ep9 echo 4.root jszwl161 sp49ep9 ec...