天天看點

單引号與雙引号差別

                             單引号雙引号的差別

單引号概念

  可以說是所見即所得:即将單引号内的内容原樣輸出,或者描述為單引号裡面看到的是什麼就會輸出什麼.

雙引号概念

   把雙引号内的内容輸出出來,如果内容中有指令、變量,會先把變量、指令解析出結果,然後在輸出最終的内容來.

   雙引号内指令或變量的寫法為`指令或變量`或$(指令或變量).

無引号:

   把内容輸出出來,可能不會将含有空格的字元串視為一個整體輸出,如果内容中有指令或變量等,會先把變量、指令解析出結果,然後在輸出最終的内容來,如果字元串中帶有空格等特殊字元,則不能完整的輸出,需要改加雙引号,一般連續的字元串,數字,路徑等可以用,不過最好用雙引号代替.工作中多用雙引号,除非你有特殊明确的要求.

單引号實戰:

#單引号原内容是什麼就輸出什麼

[root@C66-MoBan ~]# echo 'today is date'

today is date 

[root@C66-MoBan ~]# echo 'today is `date`'

today is `date`

雙引号實戰:

雙引号不加變量的結果

[root@C66-MoBan ~]# echo "today is date"  

雙引号内加變量的寫法一

[root@C66-MoBan ~]# echo "today is `date`"

today is Wed Apr  1 11:44:17 CST 2015

雙引号内加變量的寫法二

[root@C66-MoBan ~]# echo "today is $(date)"

today is Wed Apr  1 11:44:39 CST 2015

2、腳本中變量定義後,調用測試

定義一個不帶引号的變量

[root@C66-MoBan ~]# oldboy=test 

不帶引号顯示一個變量解析後的内容

[root@C66-MoBan ~]# echo $oldboy 

test

單引号顯示一個變量本身

[root@C66-MoBan ~]# echo '$oldboy'

$oldboy

雙引号顯示一個變量内容,引号内可以是變量字元串等

[root@C66-MoBan ~]# echo "$oldboy" 

3、腳本中定義變量測試

<b>不加引号無法定義</b>

[root@C66-MoBan ~]# oldboy=this is test

-bash: is: command not found

一般應用時,對于變量的定義我們要加雙引号

[root@C66-MoBan ~]# oldboy="this is test"

[root@C66-MoBan ~]# echo $oldboy

this is test

4、指令行帶空格字元串可以不加引号

[root@C66-MoBan ~]# echo I am oldboy. &gt;&gt;oldboy.txt

[root@C66-MoBan ~]# cat oldboy.txt 

I am oldboy.

[root@C66-MoBan ~]# echo "I am oldboy."&gt;&gt;oldboy.txt

雖然不加引号可以追加内容到oldboy.txt中,工作中我們習慣用""号替代