shell可以识别4种不同类型的引字符号: 单引号字符('') 双引号字符("") 反斜杠字符(\) 反引号字符也就是ESC下方的键(`)

1. 单引号 ( '' ) :当shell碰到第一个单引号时,它将忽略掉其后所有特殊字符,直到右引号位置结束。
例如
有个电话本文件phonenum
内容如下:
sophia 12345678
sophia zhang 45678901
sophia wang 01234567
如果要查找sophia zhang的话,就不能用
# grep sophia zhang phonenum
这个命令的意思是:从zhang phonenum这两个文件中查找sophia的关键字
所以说,我们要用单引号('')把sophia zhang引起来,也就是下面的命令
# grep 'sophia zhang' phonenum
所以说,当shell碰到第一个单引号时,它将忽略掉其后所有特殊字符,直到右引号位置结束。

2. 双引号 ( "" )
双引号作用与单引号类似。单引号是让shell忽略所有特殊字符,而双引号只要求忽略大多数的字符。
具体说,括在双引号中的三种特殊字符不被忽略:$,\,` ,即双引号会解释字符串的特别意思,而单引号直接使用字符串.如果使用双引号将字符串赋给变量并反馈它,实际上与直接反馈变量并无差别。如果要查询包含空格的字符串,经常会用到双引号。
# x=*
# echo $x
anaconda-ks.cfg install.log install.log.syslog
上面的命令会列出所在目录下的文件
# echo '$x'
$x
单引号只当普通的字符列出来
# echo "$x"
*
双引号是输了里面变量的内容

通过这个例子可以看出无引号、单引号和双引号之间的区别。在最后一种情况中,双引号告诉shell在引号内照样进行变量名替换,所以shell 把$x替换为*,因为双引号中不做文件名替换,所以就把*作为要显示的值传递给echo。 对于第一种情况需要进一步说明,shell在给变量赋值时不进行文件名替换(这从第三种情况中也能看出来),各步骤发生的精确次序如下: shell扫描命令行,把x的值设为星号*;
shell再次扫描命令行,碰到星号*,把它替换成当前目录下的文件清单;
shell启动执行echo命令,把文件清单作为参数传递给echo.
这个赋值的先后次序非常重要:shell先作变量替换,然后作文件名替换,最后把这行处理为参数

3. 反引号(``)
命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。shell中有两种方法作命令替换:把shell命令用反引号或者$(...)结构括起来,其中,$(...)格式受到POSIX标准支持,也利于嵌套。
# echo The date and time is `date`
The date and time is Wed Feb 17 13:14:43 CST 2010

# echo Your current working directory is $(pwd)
Your current working directory is /root
这里的$pwd就相当于 `pwd`

4. 反斜杠 backslash-escaped( \ )
反斜杠一般用作转义字符,或称逃脱字符,linux如果echo要让转义字符发生作用,就要使用-e选项,且转义字符要使用双引号
echo -e "\n"
反斜杠的另一种作用,就是当反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这种用法,在分几行输入长命令时经常使用。


相关文章推荐


★关于linux系统中命令的使用详解

★Linux主要shell命令详解

★Linux  shell内核使用

★shell 中的参数替换

★shell取得文件行数6法

★Linux主要shell命令详解


Linux部分精彩文章推荐

★Linux系统初学者的常见问题解决集结

★Linux挂载U盘

★linux 下的挂载

★redhat和ubuntu系统下挂载ntfs文件系统的方法(转载)

★疯狂挂载:Linux连接常用外部设备的方法

★ubuntu 重装系统备份数据   ubuntu安装kde桌面

★ubuntu全局配置文件

★ubuntu安装rpm的方法

★ubuntu设置全攻略

★Linux 常用C函数说明-文件权限控制篇

★rpm deb命令集合

★rc.local自启动学习

★init.d,rc.d详解 Linux运行时详解

★linux下tar gz bz2 tgz z等众多压缩文件的解压方法

★tar命令用法详述

★使用tar进行磁带备份的命令汇总

★LINUX:解压问题tar: Child returned status 1

★Linux系统服务自启动设置_Tomcat

★Linux操作系统下SSH默认22端口修改方法

★Linux启动级别:init 0,1,2,3,4,5,6

★linux服务开机启动和运行级别

★linux服务自动启动功能

★新手学堂:Linux操作系统的启动步骤说明

★xinit启动X Window System过程初探

★构建小型Linux跟文件系统镜像(Ext2 或 Ext3)

★linux内核源码目录结构

★简述 Linux 文件系统的目录结构

★Linux目录结构及解释

★Linux 内核源代码的结构

★linux文件系统的目录结构

★linux 端口 操作

★Linux操作系统下软件的安装与卸载

★vim 实用的经验

★网络管理:超级详细Tcpdump 的用法

★Linux系统下网卡网络配置基础

★用vsFTPd自架Linux网络安装服务器,以及Redhat局域网安装的解决办法

★网络管理:超级详细Tcpdump 的用法

★[转]tcpdump 教程 用法 使用

★Linux下telnet配置

★linux 任务计划 cron

★YUM 库的安装

★Linux环境变量的设置和查看方法

★Linux命令速查手册

★关于linux系统中命令的使用详解

★简单而常用的shell 命令

★rpm常用命令集合

★[常用命令]diff

★vi指令大全

★LINUX/UNIX vi全屏幕编辑器

★Linux操作系统Ifconfig命令详细解析

★linux top命令详解

★chmod命令使用详解

★Linux主要shell命令详解

★linux ps命令使用详解

★Linux下设置和修改IP

★Linux中find用法整理

★Fedora 中的 Yum 命令详解

★rpm常用命令集合

★Linux cat 命令用法

★chmod命令详细用法

★linux redhat命令大全

★Linux操作系统下/etc/hosts文件

★LINUX PATH环境变量

★如何安装无签名认证的rpm包

★LINUX关于休眠、待机和睡眠的问题

★initrd.img处理

★Linux字符集的修改方法

★Awk学习笔记

★shell取得文件行数6法

★正则表达式

★shell中单引号、双引号、反引号、反斜杠的使用

★Linux开机过程(转)

★LINUX中注销其他已登陆帐户

★学习 Linux LVM

★shell 中的参数替换

mkswap 把一个分区格式化成为swap交换区

★rsh的配置

修复GRUB

★Linux自动注销登录的帐户

★linux下的/dev/shm/  以及与swap目录的区别

★Redhat Linux配置远程桌面

★Linux截图工具import使用说明

★Linux、UNIX下磁带机的管理和使用

★Linux 磁带机备份完全攻略

★gnome桌面环境 kde桌面环境的区别

★linux i18n修改,中文版英文版体现

★linux命令-locale字符显示

★linux命令-locale字符显示

★RedHat 8.0软件包组--桌面类

★让英文版的LINUX 支持中文显示

★Linux  shell内核使用

★在RedHat Enterprise Linux 上Oracle 9i的安装配置与调优

★Linux下安装mysql后无法启动的解决方法

★百度最全的LINUX和Redhat学习教程下载帖大全

★Redhat linux 安装 gcc编译器,Gcc源码包,rpm包安装方法!

★RHCE题库

★Redhat Enterprise Linux 6 正式版已经发布!

★VMWare虚拟机安装RedHat Linux全过程

shell中单引号、双引号、反引号、反斜杠的使用相关推荐

  1. Sed 删除匹配行,匹配的字符用Shell变量替换,且变量里含有斜杠“/”时,无法删除 解决办法

    原文链接: https://zhidao.baidu.com/question/2138070399877009148.html 修改语法,用#代替",这个只能用在sed的s替换命令中,如: ...

  2. shell中单引号双引号反引号的区别

    本文首发于 http://blog.csdn.net/lineuman 1.shell中单引号,双引号,反引号的区别? 2.shell IFS解惑? 2017.4.19答 在shell中这几个引号的区 ...

  3. Linux Shell中单引号、双引号、反引号的解释

    Linux Shell中单引号.双引号.反引号的解释 转自https://zhuanlan.zhihu.com/p/166184390 1.单引号(' ') 单引号所见即所得,直接显示单引号里的内容. ...

  4. shell中单引号,双引号,反引号,不用引号的使用区别

    shell定义字符串变量时字符串可以用单引号,也可以用双引号,也可以不用引号,如果无特殊情况话,三者效果一样 1.单引号和双引号的区别 str=yalong   echo "The str ...

  5. shell中单引号、双引号与反引号的区别(学习笔记,摘抄版)

    单引号''和双引号"" 两者都是解决变量中间有空格的问题. 在bash中"空格"是一种很特殊的字符,比如在bash中这样定义str=this is String ...

  6. shell 编程中空格的使用,双引号,单引号,反引号

    http://blog.csdn.net/panda19881/article/details/6626727 1.定义变量时, =号的两边不可以留空格. eg: gender=femal----ri ...

  7. linux bash shell中,单引号、 双引号,反引号(``)的区别及各种括号的区别

    一.单引号和双引号 首先,单引号和双引号,都是为了解决中间有空格的问题. 因为空格在linux中时作为一个很典型的分隔符,比如string1=this is astring,这样执行就会报错.为了避免 ...

  8. Linux--Linux Shell 中的反引号,单引号,双引号

    反引号位 (`) 位于键盘的Tab键的上方.1键的左方.注意与单引号(')位于Enter键的左方的区别. 在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一个命令行 ...

  9. shell双引号、单引号、反撇号的使用

    1.命令和文件自动补全 Tab键 2.常见快捷键 ^c 终止前台运行的程序^z 将前台运行的程序挂起到后台^d 退出 等价exit^l 清屏 ^a |home 光标移到命令行的最前端^e |end 光 ...

最新文章

  1. Java线程池使用与原理
  2. 探讨.NET Core中实现AES加密和解密以及.NET Core为我们提供了什么方便!
  3. jQuery学习笔记——事件
  4. 计算机科学与技术专业用英语怎么写,计算机科学与技术专业专业英文简历模板...
  5. angular学习笔记(十九)-自定义指令修改dom
  6. HDU 4547 CD操作
  7. 理解PHP5中static和const关键字
  8. ThinkSNS Plus PHP开发概述
  9. cad.net 在cad2008引用了错误的com接口的dll导致出现了
  10. Android开发之Activity(实现Activity跳转)
  11. 关于Git小乌龟的安装及简单使用
  12. Teraterm 脚本
  13. SLG游戏中绘制六边形网格地形
  14. 微信公众号开发之授权
  15. docker实践(2)常用命令和DockerFile详解
  16. 根据日期获取农历节日
  17. synchronized(this)和synchronized(.class)的理解
  18. 一等号,二等号和三等号区别
  19. 51单片机驱动DS18B20温度传感器测量温度
  20. 【Datawhale可解释性机器学习笔记】预备知识学习

热门文章

  1. 小米“祭出” AIoT 神器!| 技术头条
  2. 为何要弃 Java、Swift 于不顾,而选择 Python?
  3. 马化腾、李彦宏、雷军,程序员国服三强谁的编程能力最牛?
  4. python换零钱有多少种方案_Python之100个项目:零钱转换程序
  5. aptitude安装出现依赖_开发函数计算的正确姿势——依赖安装方法一览
  6. mysql数据库不存在_mysql 数据库不存在
  7. 安装ie9提示未能完成安装_Windows 7下安装IE 11失败,提示:Internet Explorer未能完成安装...
  8. overscroll-behavior称为“滚动链”
  9. pnpm 是更快的包管理工具
  10. HTML固定内容的css代码,普通文本重内容的HTML/CSS设计