2013-03-24 55 views
0

這裏有一個問題:殼牌語錄使用和不使用環境變量

當炮彈讀取命令行,就是雙引號(「)和文本單引號引起來之間封閉的文本之間的差異(')?

你需要考慮兩種情況,其中有環境變量,並且沒有環境變量。

我似乎無法找到一個差異,我使用兩種情況下,相同的方式

我對硬性和軟性引號有一些理解,但是這引發了我。

+0

在這種情況下,環境變量和普通shell變量沒有區別。你爲什麼不相信? – chepner 2013-03-24 15:22:11

+0

再次想到,我認爲你的提問者在將變量一般稱爲「環境變量」時是錯誤的。通過這種方式閱讀,您瞭解雙引號允許參數擴展是正確的答案。 – chepner 2013-03-24 15:28:31

+0

謝謝你的澄清。 – user2181271 2013-03-24 15:48:38

回答

0

雙引號通常用於可以提取Shell變量值的地方。 實施例:

my_name="prabhu" 
echo "printing $my_name" 

輸出:印刷帕布

單引號不打印一個變量的值,而不是打印給定的內容。 實施例:

my_name="prabhu" 
echo 'printing $my_name' 

輸出:印刷$ MY_NAME

+0

是的,這就是我所理解的,但我不明白什麼時候使用環境變量和何時不使用環境變量之間的區別。無論如何,謝謝你的回答。 – user2181271 2013-03-24 13:01:12

0

問題是差的措辭。它似乎一般指的是變量,而不是試圖區分「shell變量」和「環境變量」(即標記爲導出到子進程的shell變量)。如果這是真的,那麼正確答案當然就是雙引號字符串允許參數擴展,而單引號字符串則不允許。