Linux Shell 中的反引号,单引号,双引号

反引号位 (`) 位于键盘的Tab键的上方、1键的左方。注意与单引号(')位于Enter键的左方的区别。

在Linux中起着命令替换的作用。命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。

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

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

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

反引号仍表示命令替换

\$表示$的字面值

\`表示`的字面值

\"表示"的字面值

\\表示\的字面值

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

如下,shell会执行反引号中的date命令,把结果插入到echo命令显示的内容中。

[root@localhost sh]# echo The date is `date`

The date is 2011年 03月 14日 星期一 21:15:43 CST

单引号、双引号用于用户把带有空格的字符串赋值给变量事的分界符。

[root@localhost sh]# str="Today is Monday"

[root@localhost sh]# echo $str

Today is Monday

如果没有单引号或双引号,shell会把空格后的字符串解释为命令。

[root@localhost sh]# str=Today is Monday

bash: is: command not found

单引号和双引号的区别。单引号告诉shell忽略所有特殊字符,而双引号忽略大多数,但不包括$、\、`。

[root@localhost sh]# testvalue=100

[root@localhost sh]# echo 'The testvalue is $testvalue'

The testvalue is $testvalue

[root@localhost sh]# echo "The testvalue is $testvalue"

The testvalue is 100

下面举几个例子:


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


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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、shell脚本介绍 1.1 开头(环境使用shebang机制) #!/bin/bash 必须写在文件首行 符号...
    优果馥斯阅读 3,468评论 0 1
  • 1.命令格式:ifconfig [网络设备] [参数] 2.命令功能: ifconfig 命令用来查看和配置网络设...
    Nuuuu阅读 3,871评论 0 12
  • 为何叫做 shell ? shell prompt(PS1) 与 Carriage Return(CR) 的关系?...
    Zero___阅读 3,219评论 3 49
  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 1,141评论 0 0
  • 小灵是一个菊花妖,在众多菊花妖中她是如此的不起眼。 菊花坳里有很多菊花,每到花开时节这里便美如画卷,墨牡丹鲜红而大...
    序小木阅读 1,096评论 10 9