shell脚本中单引号和双引号的区别

      shell脚本中的单引号和双引号一样都是字符串的界定符,而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号。(注意是所有,只是单引号本身不能够出现在其中)。

    双引号用于保持引号内所有字符的字面值(回车也不例外),但以下情况除外:

  • $加变量名可以取变量的值

  • 反引号仍表示命令替换

  • \$表示$的字面值

  • \`表示`的字面值

  • \"表示"的字面值

  • \\表示\的字面值

  • 除以上情况之外,在其它字符前面的\无特殊含义,只表示字面值。

    从上就可以看出单引号和双引号的区别。下面举几个例子:

shell脚本中单引号和双引号的区别_第1张图片

 

可见,单引号中完全是保持字符串的原型输出,而双引号进行了命令替换。

 

shell脚本中单引号和双引号的区别_第2张图片

 

    由上可见虽然单引号和双引号都是字符串的限定符,但还是有所区别。

你可能感兴趣的:(shell,单引号,双引号)