关于shell的单引号和双引号转义 以及特殊符号相关

20140603 Chenxin

shell转义,单引号与双引号,反撇号

1、转义

单引号和双引号都能关闭shell对特殊字符的处理。

不同的是,双引号没有单引号严格,单引号关闭所有有特殊作用的字符,而双引号只要求shell忽略大多数,具体的说,就是以下符号在双引号内仍起效果:

①美元符号 $ 在双引号内,仍然可以进行变量替换

②反撇号 `

③反斜杠

这3种特殊字符不被忽略;不忽略美元符号意味着shell在双引号内部也进行变量名替换。

1)单引号

硬转义,单引号内的字符就是其字面意义。阻止shell进行变量替换和解释特殊字符;对于后一种情况,单引号就是个转义字符,类似于反斜线。

2)双引号

会进行变量替换;将整个字符串解释为一个整体,即使参数里面含有空白字符也不会被shell分割开

3)反撇号`,相当于$()--命令替换

会把命令执行的输出,替换;相当于函数调用,嵌套的变量会一直解析

① 把shell命令用反引号或者$(...)结构括起来,其中,$(...)格式受到POSIX标准支持,也利于嵌套

② 反撇号内不能再引用反撇号,而$()中可以引用反撇号

③ 要把$()引用命令与${}引用变量区分开来

4)反斜线

用作转义字符,阻止shell将后续字符解释成特殊字符

2、示例

1)****/home/edwardlewis/altraman # echo 'date'

date

****:/home/edwardlewis/altraman # echo "date"

date

****:/home/edwardlewis/altraman # echo date

Fri Aug 19 07:00:02 CST 2011

2)在脚本中:

a)newname=1.log_date +%Y-%m-%d-%H-%M

会输出:1.log_2011-10-13-21-27

b)tme=move_data.log_'date +%Y-%m-%d-%H-%M'

echo ${tme}

输出为:1.log_date +%Y-%m-%d-%H-%M

c)tme=move_data.log_"date +%Y-%m-%d-%H-%M"

echo ${tme}

输出为:1.log_date +%Y-%m-%d-%H-%M

3、其他[3]

1)command line的每一个charactor,分为如下两种:

*literal:普通纯文字,对shell 来说没特殊功能

*meta:对shell来说,具有特定功能的特殊保留字符

① IFS:由或或三者之一组成,用来拆解 command line的每一个词(word),因为command line 是按词来处理的。

② CR:由产生。CR 用来结束 command line

③ =:设定变量。

④ $:作变量或运算替换

⑤ >:重导向 stdout

⑦ |:管道

⑧ &:后台运行。

⑨ ():将其内的命令置于 嵌套子shell中执行,或用于运算或命令替换。

⑩ {}:将其内的命令置于non-named function中执行,或用在变量替换的界定范围

11 ;:在前一个命令结束时,忽略其返回值,继续执行下一个命令

12 &&:在前一个命令结束时,若返回值为 true,继续执行下一个命令

13 ||:在前一个命令结束时,若返回值为false,继续执行下一个命令。

14 !:执行 history 列表中的命令

2)假如需要在command line中将这些保留字符的功能关闭,就需要quoting处理。在bash中,常用的quoting 有三种方法:

① hard quote:' ' (单引号),在 hard quote 中的所有meta 均被关闭

② soft quote:" " (双引号),在soft quoe 中大部份meta都会被关闭,除$,`,\。

③ escape: (反斜线),紧接 escape之后的单一meta被关闭

shell 引号 解析 逗号_关于shell的单引号和双引号转义 以及特殊符号相关相关推荐

  1. shell 引号 解析 逗号_Shell(Bash)单引号、双引号和反引号用法详解

    单引号和双引号用于变量值出现空格时,比如 name=zhang san 这样执行就会出现问题,而必须用引号括起来,比如 name="zhang san". 不过,引号有单引号和双引 ...

  2. html中单引号与双引号区别,JS 和 HTML 中的单引号与双引号

    JS中的单引号与双引号 HTML中的单引号与双引号很简单,就是两个字符实体: 显示 描述 实体名称 实体编号 " 双引号.引号 " " ' 单引号.撇号 ' ' x 1 ...

  3. C语言双引号A单引号A,C语言查漏补缺——单引号和双引号

    一直对于单引号和双引号有些混淆,本节讨论一下单引号和双引号的问题. ide 1.基本知识spa 一.C语言中单引号用来表示字符字面量 指针 二.C语言中双引号用来表示字符串字面量 blog 好比:'a ...

  4. 字符变量 单引号 c语言,【C】 14_单引号和双引号

    单引号和双引号 C 语言中的单引号用来表示字符字面量 C 语言中的双引号用来表示字符串字面量 'a' 表示字符字面量,在内存中占用 1 个字节,'a' + 1 表示 ASCII码加 1 ,结果为 b ...

  5. python中的单引号和双引号有什么区别_Python 中的单引号和双引号有什么区别?...

    在Python当中表达字符串既可以使用单引号,也可以使用双引号,那两者有什么区别吗? 简单来说,在Python中使用单引号或双引号是没有区别的,都可以用来表示一个字符串.但是这两种通用的表达方式,除了 ...

  6. php单双引号拼接,js字符串拼接中关于单引号和双引号的那些事

    在js开发中一般我们多多少少都会用到字符串拼接,新手们经常会遇到各种错误,其中关于字符串拼接的问题尤其重要,今天来谈一谈. 1.常用字符串拼接 当我们从后台请求到数据时,传统渲染我们就会将请求到的数据 ...

  7. python中引号的使用规范_Python中的单引号和双引号的使用

    我喜欢在用于插值的字符串周围使用双引号或者是自然语言消息,对于小的符号类字符串使用单引号,但是如果字符串包含引号或者我忘记了会破坏规则.我使用三重双引号为docstrings和原始字符串字面量的正则表 ...

  8. shell 引号 解析 逗号_shell 脚本给逗号分隔的内容添加双引号

    有個文件 a ,其內容為: 1, 2, 3 $ head a 1, 2, 3 想把上面的文件转成如下的格式 用于 sql 条件查询中: "1","2",&quo ...

  9. Linux Shell - 单引号 ( ‘ )、双引号 ( “ ) 和反引号 ( ` )

    Linux Shell - 单引号 ( ' ).双引号 ( " ) 和反引号 (`) Bash 只有一种数据类型,即字符串.用户输入的数据,Bash 都视为字符串. 1. 单引号 (') 单 ...

最新文章

  1. 设置echarts的grid、tooltip、柱状图渐变色、折线图渐变色
  2. nmcli命令详解_【高新课堂】第一百二十五期Liunx必备命令
  3. Scala基础教程(五):函数、闭包
  4. iphone11返回上一级手势怎么设置_苹果iphone12怎么关闭程序appp 怎么返回上一步
  5. 【AI学院】老司机手把手带学言有三的经典书籍《深度学习之图像识别》,需要的赶紧上车吧...
  6. ubuntu添加dvd光盘源
  7. 设计模式学习笔记(十七)——Command命令模式
  8. [Leetcode][第40题][JAVA][数组总和2][回溯][剪枝]
  9. C++: new是否进行初始化的问题
  10. 基于 PostgreSQL 的 EMQ X Auth ACL
  11. oracle创建触发器
  12. qq 实现连接内网_如何穿透内网稳定进行远程桌面?花生壳盒子来搞定
  13. 咖啡产地及如何鉴赏评价
  14. 【CF335E】 Counting Skyscrapers(期望)
  15. 2020年测试面试经历以及面试题大全
  16. 《贝叶斯统计》最大后验密度可信集(HPD)Python实现
  17. win10 pycharm安装使用 MySQLdb
  18. AVS2的GB帧与s帧
  19. Unity UI跟随物体
  20. linux关键命令,Linux关键命令

热门文章

  1. 他是第一批推动比特币普及的人 如今早已放弃了信仰
  2. Flask | 浅读文档,快速出发
  3. Mesos各种存储处理方式
  4. Cortex-M3启动深度解析
  5. linux编译安装网卡驱动详解(网卡丢包)
  6. AC日记——中位数 洛谷 P1168
  7. 分享10个原生JavaScript技巧
  8. SQL Server 执行计划
  9. RS2008中控件ID冲突问题
  10. 11月14日云栖精选夜读 | 动画+原理+代码,解读十大经典排序算法