轉至:http://goward.jimdo.com/2010/06/15/linux-shell%E5%90%84%E7%A7%8D%E5%BC%95%E5%8F%B7%E7%9A%84%E7%94%A8%E6%B3%95/
這些字元之間的區別在於它們如何影響變數(如$NAME)和Shell命令(如date)。對於任何一對引號,shell都會把引號內的內容發送給命令。在下面的執行個體中使用echo命令。詳細地講,它們的區別如下:
單引號(single quote) Shell不會處理任何變數或命令
雙引號(double quote)Shell會處理變數,如$NAME,但不會處理任何命令。
反引號(back quote)Shell嘗試把引號中的每個單詞作為命令處理。如果有變數,首先會對它們進行求值,然後將其作為命令處理。因此,如果$NAME在反引號中就會處理它,然後把結果作為命令處理。
可以在以下命令中查看它是如何工作的。假定NAME=Jame。記住date是一個命令,返回當前日期和時間。第一個命令沒有引號。shell會解釋$NAME變數,但不會運行date命令。
$echo Welcome $NAME,the date is date
Welcome Jame,the date is date
下一個命令用單引號封閉輸入。這將阻止shell解釋如何變數或命令。
$echo 'Welcome $NAME,the date is date'
Welcome $NAME,the date is date
以下命令用雙引號封閉輸入。結果類似於不帶引號的輸出。
$echo "Welcome $NAME,the date is date"
Welcome Jame,the date is date
最後一個命令包含用於命令的反引號。shell會解釋該命令。
$echo "Welcome $NAME,the date is `date`"
Welcome Jame,the date is Tus June 15 10:43:37 EST 2010