我正在學習Bash腳本的基礎知識。如果我沒有弄錯,那麼沒有分隔符的字符串和用雙引號("
)分隔的字符串幾乎是以相同的方式解釋的,所以就像字母數字字符串一樣;內部的變量被擴展。另一方面,用單引號('
)分隔的字符串不會擴展變量,這是將它們與前面提到的變量進行比較的主要區別。 在終端上練習一下,我注意到一條語句不能按我的預期工作。正如你可以看到在這個例子:爲什麼不回聲「Hello World!」聲明按預期工作?
MacBook-Pro-di-Rodolfo:~ Rodolfo$ echo Hello World!
Hello World!
MacBook-Pro-di-Rodolfo:~ Rodolfo$ echo 'Hello World!'
Hello World!
MacBook-Pro-di-Rodolfo:~ Rodolfo$ echo "Hello World!"
echo "Hello World"
Hello World
最後的語句不打印出相同的字符串作爲以前的,截斷的感嘆號。任何人都可以向我解釋這個角色移除的原因嗎? 如果它可以有用,我在Mac OS X v。10.9下運行所有這些。
見http://unix.stackexchange.com/q/33339/23529 –
@DanielJour,所以最優雅的解決方案,以避免這種情況是隻使用單引號,考慮到反斜槓字符DOEN」在這種情況下工作? – rudicangiotti
在這裏使用轉義反斜槓有什麼問題? IIRC相鄰的字符串由bash連接起來,所以像'「Hello World」'!''也應該起作用。 –