shell中的字符串、单引号、双引号、反引号的使用及讲解

1.字符串

在shell脚本中,通过echo命令输出时

echo abc
echo 'abc'
echo "abc"
echo 1+2 #并不输出3,而是 1+2 
#打印的效果都一样,都按照字符串来输出。 那它们有什么不同吗?

2.单引号

单引号属于强引用,它会忽略所有被引起来的字符的特殊处理,被引用起来的字符会被原封不动的使用,唯一需要注意的点是不允许引用自身;
单引号将其中的内容都作为了字符串来,忽略所有的命令和特殊字符,类似于一个字符串的用法;
[root@localhost ~]# var=abc   #注意给变量赋值时=号左右两侧不能有空格,否则报错
[root@localhost ~]# echo 'this is ${var}'  #并不解析变量的var的值
this is ${var}
[root@localhost ~]# echo '\'\''  #并不打印''
> ^C
[root@localhost ~]# echo ''''    #打印为空

[root@localhost ~]# 

3.双引号

双引号属于弱引用,它会对一些被引起来的字符进行特殊处理。
双引号与单引号的区别在于其可以包含特殊字符(单引号直接输出内部字符串,不解析特殊字符;双引号内则会解析特殊字符),包括', ", $, \,如果要忽略特殊字符,就可以利用\来转义,忽略特殊字符,作为普通字符输出:
[root@localhost CmakeProject]# var=abc
[root@localhost CmakeProject]# echo "this is ${var}"  #可以解析变量var
this is abc
[root@localhost CmakeProject]# echo "\"\"" #使用转义字符来输出""
""
[root@localhost CmakeProject]# echo "''" #使用双引号包裹来输出''
""
[root@localhost CmakeProject]# echo '""'  #也可以通过在单引号中包裹双引号,来输出双引号.
""

4.反引号

反引号用来包含一个命令字符串的,其中的命令会先执行,得到的结果会返回到层命令再执行:
反引号类似与$(command)类似

#一个使用例子,如果想要遍历当前文件夹及其一级子文件夹
[root@localhost CmakeProject]# ls `ls`
CMakeLists.txt #一级子文件

build: #一级子文件夹
CMakeCache.txt  CMakeFiles  cmake_install.cmake  CmakeProject  Makefile

src: 一级子文件夹
main.cpp

#和下面这个命令是等价的
[root@localhost CmakeProject]# ls $(ls)
CMakeLists.txt #一级子文件

build: #一级子文件夹
CMakeCache.txt  CMakeFiles  cmake_install.cmake  CmakeProject  Makefile

src: #一级子文件夹
main.cpp
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值