[笔记] shell脚本中的单引号和双引号以及反引号详解

引用

在第五章中讲到shell中的引用,shell能识别到4种不同的引用字符:

  • 单引号’
  • 双引号"
  • 反斜线\
  • 反引号`

前两种和最后一种必须成对出现,而反斜线可以在命令中根据需要多次出现,这些引用字符在shell中的含义和功能各不相同。

单引号’

shell碰到第一个’,在遇到用于封闭的’之前,shell会忽略单引号对中引用的所有特殊字符,即不再解释字符串中任何特殊字符,对内容的保护比较强,单引号最常见的地方就是一个字符串参数中含有空格时,shell通常会使用空格作为分割符,将一个字符串解释成了多个字符串参数,如下例:

$ echo one      teo    three four
one teo three four
$ echo 'one      teo    three four'
one      teo    three four

双引号"

双引号的作用类似于单引号,除了对于内容的保护要弱于后者,双引号会忽略引用的大部分特殊字符。具体来说,下面3个字符在双引号中不会被忽略:

  • 美元符号 $
  • 反引号 `
  • 反斜线 \
touch file{
   01..10}
filelist=*
echo $filelist
file01 file02 file03 file04 file05 file06 file07 file08 file09 file10
echo '$filelist'
$filelist
echo "$filelist"
*

上面的例子中对比了不使用引号,使用单引号以及使用双引号之间的主要不同,在第3行中shell看到了星号并将其替换成当前目录下的所有文件名, 在第5行中,shell完全不处理单引号中的字符,因此显示出了" f

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值