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

ForTechnology發表於2013-01-24

單引號

目的: 為了保護文字不被轉換.除了他本身. 就是說除去單引號外, 在單引號內的所有文字都是原樣輸出.

1. [root@jszwl161 SP49EP9]# echo '$*>
    $*>
2. [root@jszwl161 SP49EP9]# echo 'she is crying: "help"'

    she is crying: "help"

3. [root@jszwl161 SP49EP9]# echo '\\\\'

    \\\\

4. [root@jszwl161 SP49EP9]# echo 'hah 'test''

    hah test    #略去了所有'

5. [root@jszwl161 SP49EP9]# echo ' today is `date`'

    today is `date`   #反引號在此無法實現函式功能.

雙引號

目的: 為了包含文字或者函式段. 除了本身,反引號內的函式,$開頭的變數和\開頭反轉換的字元外, 其餘都是直接輸出.

1. [root@jszwl161 SP49EP9]# echo "today is `date`"

    today is Fri Jul   4 08:03:34 GMT 2008

2. [root@jszwl161 SP49EP9]# echo "today is 'date'"

    today is 'date'

3. [root@jszwl161 SP49EP9]# echo "\\\\"

    \\

4. [root@jszwl161 SP49EP9]# echo "test "test""

    test test

反引號

目的是為了在雙引號內保持函式轉換. 但單引號內其無作用.

1. [root@jszwl161 SP49EP9]# echo "today is `date`"

     today is Fri Jul   4 08:03:34 GMT 2008    #將函式date轉換.

2. [root@jszwl161 SP49EP9]# echo ' today is `date` '

     today is `date`    #在單引號內無作用.

 

 

 

單引號

被單引號用括住的內容,將被視為單一字串。在引號內的代表變數的$符號,沒有作用,也就是說,他被視為一般符號處理,防止任何變數替換。

雙引號
被雙引號用括住的內容,將被視為單一字串。它防止萬用字元擴充套件,但允許變數擴充套件。這點與單引數的處理方式不同。


反引號
在前面的單雙引號,括住的是字串,但如果該字串是一列命令列,會怎樣?答案是不會執行。要處理這種情況,我們得用反單引號來做。
fdv=`date +%F`echo "Today $fdv"
在倒引號內的 date +%F 會被視為指令,執行的結果會帶入 fdv 變數中。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25897606/viewspace-753215/,如需轉載,請註明出處,否則將追究法律責任。

相關文章