600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > bash shell基本语法之单引号 双引号和倒引号的区别及使用

bash shell基本语法之单引号 双引号和倒引号的区别及使用

时间:2021-04-29 01:34:19

相关推荐

bash shell基本语法之单引号 双引号和倒引号的区别及使用

前言

在bash shell基本语法之特殊变量的使用的一些示例中,使用echo输出一些字符串的时候,既使用了单引用也用了双引号,这篇博文简单说下这两个的区别,顺便说下倒引号的用法

单引号与双引号

在使用echo输出字符串的时候, 会用引号(单/双引号)将字符串括起来,在没有特殊字符如$等的时候,只是普通文本内容,使用单/双引号没有区别,下面说下不同的地方。

单引号

如果字符串中存在$等特殊字符,想要作为普通字符原样输出就使用单引号,这样就不会把$后面的字符中作为变量解释输出

双引号

在对待$等特殊字符上,刚好和单引号的处理相反,比如对于$紧跟的字符串作为引用的变量解释

示例

#! /bin/bashdescribe="this is a demo"#单引号输出,特殊字符不处理echo 'I want to say $describe, current path: `pwd`'#双引号输出,特殊字符处理echo "I want to say $describe, current path: `pwd`"

执行结果:

总之,单引号会把其中的一些特殊字符串作为普通字符对待,双引号解释这些特殊字符,如变量替换

p.s. : 对于反斜线的处理,在使用echo命令的时,反斜线或者说这些转义字符怎么处理,是由echo命令决定的,而不是单/双引号。也就是说,echo命令默认配置,对于反斜线,单/双引号处理结果一样,因为和echo配置有关。

下面是使用man命令查看echo的文档的一部分:

对于使用echo命令是否解释字符串中的反斜线,是由-e/-E这两个选项决定的。

如下:

#! /bin/bashdescribe="this is a demo"#单引号输出,特殊字符不处理echo 'I want to say $describe,\t current path: `pwd`'#双引号输出,特殊字符处理echo "I want to say $describe,\t current path: `pwd`"

执行结果如下:\t处理的结果一样,都被转义了,不同的版本默认配置不一样,我在另一个版本上尝试是都没被转义:

倒引号

键盘数字1左边那个键按下的这个符号:`。

上面的示例中已经用到了,在执行pwd命令的时候。所以它的作用是用命令结果代替命令本身,然后用来操作,比如上面的想在字符串获取pwd的结果进行打印。

和``命令效果一样的是使用$(),例如想在一个已经由倒引号``包括的命令中,再嵌套执行一个命令,是不允许直接嵌套可以使用$()相互嵌套,如下:

#! /bin/bashpwdpath=`pwd`echo "path: $path"echo "echo path: `echo 'path is '$(pwd)`"

注意最后一行代码,在字符串中执行echo命令,然后在echo输出的字符串中执行pwd命令,执行结果如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。