1. 程式人生 > >shell指令碼中單引號和雙引號的區別

shell指令碼中單引號和雙引號的區別

shell指令碼中的單引號和雙引號一樣都是字串的界定符,而不是字元的界定符。單引號用於保持引號內所有字元的字面值,即使引號內的\和回車也不例外,但是字串中不能出現單引號。(注意是所有,只是單引號本身不能夠出現在其中)。

    雙引號用於保持引號內所有字元的字面值(回車也不例外),但以下情況除外:

  • $加變數名可以取變數的值

  • 反引號仍表示命令替換

  • \$表示$的字面值

  • \`表示`的字面值

  • \"表示"的字面值

  • \\表示\的字面值

  • 除以上情況之外,在其它字元前面的\無特殊含義,只表示字面值。

    從上就可以看出單引號和雙引號的區別。下面舉幾個例子:

可見,單引號中完全是保持字串的原型輸出,而雙引號進行了命令替換。

    由上可見雖然單引號和雙引號都是字串的限定符,但還是有所區別。