嵌入式LINUXshell編程中的引號

在上文根文件系統建立的過程中,需要製作一些可執行的腳本文件,比如rcS,profile。這些腳本里編程使用的是shell語言,需要注意其中的引號。如下:

在shell中引號分爲三種:單引號,雙引號和反引號。  

1.單引號 ‘  

  由單引號括起來的字符都作爲普通字符出現。特殊字符用單引號括起來以後,也會失去原有意義,而只作爲普通字符解釋。例如:  

$string=’$PATH’  

$ echo $string  

結果:$PATH  

可見$保持了其本身的含義,作爲普通字符出現。  


2. 雙引號 “  

  由雙引號括起來的字符,除$、、’、和”這幾個字符仍是特殊字符並保留其特殊功能外,其餘字符仍作爲普通字符對待。對於$來說,就是用其後指定的變量的值來代替這個變量和$;對於而言,是轉義字符,它告訴shell不要對其後面的那個字符進行特殊處理,只當作普通字符即可。可以想見,在雙引號中需要在前面加上的只有四個字符$,,’和”本身。而對”號,若其前面沒有加,則Shell會將它同前一個”號匹配。例如:

我們假定PATH的值爲.:/usr/bin:/bin,輸入如下命令:  

$ TestString=”$PATH\”$PATH”  

$ echo $TestString  

結果::/usr/bin:/ bin”$PATH  

讀者可以自己試一下在第二個雙引號之前不加會產生什麼結果。  


3. 反引號 `  

反引號(`)這個字符所對應的鍵一般位於鍵盤的左上角,不要將其同單引號(’)混淆。反引號括起來的字符串被shell解釋爲命令行,在執行時,shell首先執行該命令行,並以它的標準輸出結果取代整個反引號(包括兩個反引號)部分。例如:  

$ pwd  

/home/xyz  

$ string=”current directory is `pwd`”  

$ echo $string  

current directour is /home/xyz 

shell執行echo命令時,首先執行`pwd`中的命令pwd,並將輸出結果/home/xyz取代`pwd`這部分,最後輸出替換後的整個結果。  



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章