天天看点

Linux shell脚本中单引号(‘‘)和双引号(““)的区别

摘要1:https://zhidao.baidu.com/question/1992021593300328027.html

摘要2:https://www.cnblogs.com/qiangyuzhou/p/10797246.html

shell脚本中的单引号和双引号一样都是字符串的界定符,而不是字符的界定符。

单引号:

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

双引号:

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

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

反引号仍表示命令替换

\$表示$的字面值

\`表示`的字面值

\"表示"的字面值

\\表示\的字面值

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

从上就可以看出单引号和双引号的区别。

总结:

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

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

示例:

  1. #!/bin/bash
  2. url="http://c.biancheng.net"
  3. website1='C语言中文网:${url}'
  4. website2="C语言中文网:${url}"
  5. echo $website1
  6. echo $website2

运行结果:

C语言中文网:${url}

C语言中文网:http://c.biancheng.net

以单引号

' '

包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令(命令需要反引起来)也会把它们原样输出。这种方式比较适合定义显示纯字符串的情况,即不希望解析变量、命令等的场景。

继续阅读