Shell高频:说下Shell的单引号、双引号和反引号的区别

在编写Shell脚本或输入命令时,我们经常看到使用单引号或者双引号,这不仅适用于Shell脚本,而且还适用于所有Bash命令,但是这些引号使用方式之间存在一定的差异,下面我们一起来了解一下它们之间的不同。

一、单引号

用单引号括起来的字符会保留引号内每个字符的字面值,简而言之,由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。

单引号中的任何字符都没有特殊含义,保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号。(注意是所有,只是单引号本身不能够出现在其中)。

示例如下:

1)在/home/xiao/bin创建一个test.sh文件,在文件中添加如下内容

[xiao@hadoop102 bin]$ vim test.sh

#!/bin/bash

do_date=$1

echo '$do_date'

echo '"$do_date"'

 图片源于网络,侵删

2)查看执行结果

[xiao@hadoop102 bin]$ test.sh 2019-02-10

$do_date

"$do_date"

小结:单引号不取变量值‍

二、双引号

双引号类似于单引号,只是它允许Shell解释一些特殊符号,双引号用于保持引号内所有字符的字面值(回车也不例外),但以下情况除外:$加变量名可以取变量的值、反引号仍表示命令替换、\$表示$的字面值、\`表示`的字面值、\"表示"的字面值、\\表示\的字面值,除以上情况之外,在其它字符前面的\无特殊含义,只表示字面值。

示例如下:

1)在/home/xiao/bin创建一个test.sh文件,在文件中添加如下内容:

[xiao@hadoop102 bin]$ vim test.sh

#!/bin/bash

do_date=$1

echo "$do_date"

echo "'$do_date"

2)查看执行结果如下:

[xiao@hadoop102 bin]$ test.sh 2019-02-10

2019-02-10

'2019-02-10'

小结:双引号取变量值‍

三、反引号

反引号这个字符所对应的键一般位于键盘的左上角,不要将其同单引号混淆。反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。

示例如下:

1)在/home/xiao/bin创建一个test.sh文件,在文件中添加如下内容:

[xiao@hadoop102 bin]$ vim test.sh

#!/bin/bash

echo `date`

2)查看执行结果如下:

[xiao@hadoop102 bin]$ test.sh 2019-02-10

2019年 02月 10日 星期四 21:02:08 CST

小结:反引号执行引号中命令‍

四、总结

单引号内的内容将原样输出,双引号的作用也是将引号里面的内容输出,但是如果双引号内有命令或者变量,会先对命令进行执行(变量解析取值)得到结果,然后把结果输出。反引号用于命令替换,即对引用的命令进行执行得到结果输出。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值