python引号嵌套_如何理解shell中的双引号和单引号嵌套时的工作原理?

三天了,看到这个问题还是没人回答,内心不知是该认为是情理之中还是为题主惋惜。。。

这其实就是三个shell的基础知识,逐一拆解如下:

①单引号

单引号是一种强引用,在没有其他引号作用的情况下,会将第一个单引号到第二个单引号之间的内容作为字符串,不做任何转换地输出出来,即不解析特殊字符

②双引号

双引号是一种弱引用,跟单引号的区别在于,可以解析特殊字符,比如如果存在变量REPLY,那么 $REPLY 在双引号里会被置换成变量值。而如果要忽略特殊字符,需要使用反斜杠(\)转义

③echo

echo 命令的作用就是输出跟在其后的文本(官方解释:display a line of text)。不带引号的文本,和被双引号括起来的文本,是一样的,即

echo "$REPLY" 等同于 echo $REPLEY

而 echo "\$REPLY" 等同于 echo '$REPLY'

----------------------------------那么接下来分析下题主的例子----------------------------------

1.

# echo "this is a """$REPLY""" "

this is a game

这个例子并不是一对双引号带了一对三引号(题主怕不是有Python基础?),而是输出了5个部分,其中4个部分带了双引号。用颜色标注就如下:

所以输出的其实是: "this is a "、空、$REPLY、空、空格。

合起来就是:"this is a game "

2.

# echo "this is a '''$REPLY''' "

this is a '''game'''

上面说到,在没有其他引号作用的情况下,单引号才起到“不解析字符串”的作用,而在前面有一个双引号的情况下,单引号就只是单引号,最后以另一个双引号闭合,否则系统会报错

3.

# echo "this is a "game" "

this is a game

这个例子输出了三个部分,分别是:"this is a "、字符串game、空格

所以结果是:"this is a game "

4.

# echo "this is a 'game'"

this is a 'game'

在双引号里,单引号只是单引号,参考第2个例子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值