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

不过,引号有单引号和双引号之分,二者的主要区别在于,被单引号括起来的字符都是普通字符,就算特殊字符也不再有特殊含义;而被双引号括起来的字符中,"$"、"\"和反引号是拥有特殊含义的,"$"代表引用变量的值,而反引号代表引用命令。还是来看例子吧:

[root@localhost ~]# name=sc

#定义变量name的值是sc

[root@localhost ~]# echo '$name'

$name

#如果输出时使用单引号,则$name原封不动地输出

[root@localhost ~]# echo "$name"

sc

#如果输出时使用双引号,则会输出变量name的值sc

[root@localhost ~]# echo `date`

2013 10月 21 日星期一 18:16:33 CST

#反引号的命令会正常执行

[root@localhost ~]# echo '`date`'

'date'

#但是如果反引号括起来的命令又被单引号括起来,那么这条命令不会执行,`date`会被当成普通字符输出

[root@localhost ~]# echo "`date`"

2013年 10月 21 日星期一 18:14:21 CST

#如果被双引号括起来,那么这条命令又会正常执行

所以,如果需要在双引号中间输出"$"和反引号,则要在符号前加入转义符"\"。

反引号

如果需要调用命令的输出,或把命令的输出赋予变量,则命令必须使用反引号包含,这条命令才会执行,反引号的作用和 $(命令) 是一样的,但是反引号非常容易和单引号搞混,所以推荐大家使用 $(命令) 的方式引用命令的输出。命令如下:

[root@localhost ~]# echo ls

ls

如果命令不用反引号包含,那么命令不会执行,而是直接输出

[root@localhost -]# echo `ls`

anaconda-ks.cfg install.log install.log.syslog sh test testfile

#只有用反引号包含命令,这条命令才会执行

[root@localhost ~]# echo $(date)

2013年 10月 21 日 星期一 18:25:09 CST

#使用用$(命令)的方式也是可以的

还是这句话,不管是从容易混淆的角度,还是从 POSIX 规范的角度来说,尽量使用 $(命令) 的方式来引用命令的输出,而不要使用反引号。

shell 引号 解析 逗号_Shell(Bash)单引号、双引号和反引号用法详解相关推荐

  1. jQuery 表单验证插件,jQuery Validation Engine用法详解

    jQuery 表单验证插件,jQuery Validation Engine用法详解 功能强大的 jQuery 表单验证插件,适用于日常的 E-mail.电话号码.网址等验证及 Ajax 验证,除自身 ...

  2. shell 引号 解析 逗号_shell特殊符号解析

    在 shell 中常用的特殊符号罗列如下 : # ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@  ...

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

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

  4. csh for循环_shell中的for循环用法详解_linux shell

    这篇文章主要介绍了shell中的for循环用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 for 命令: for i i ...

  5. Shell命令 getopts/getopt用法详解 命令行参数

    Shell命令行参数解析getopts/getopt用法详解 在Linux bash中,可以用以下三中方式解析命令行参数: 直接处理:使用$1.$2.$3- 进行解析 getopts:短选项的情况,例 ...

  6. 数据结构图文解析之:哈夫曼树与哈夫曼编码详解及C++模板实现

    0. 数据结构图文解析系列 数据结构系列文章 数据结构图文解析之:数组.单链表.双链表介绍及C++模板实现 数据结构图文解析之:栈的简介及C++模板实现 数据结构图文解析之:队列详解与C++模板实现 ...

  7. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  8. BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)

    一.简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更 ...

  9. Django基础(11): 表单集合Formset的高级用法详解

    Formset(表单集)是多个表单的集合.Formset在Web开发中应用很普遍,它可以让用户在同一个页面上提交多张表单,一键添加多个数据,比如一个页面上添加多个用户信息.今天小编我就介绍下Djang ...

最新文章

  1. ES5和ES6数组遍历方法详解
  2. 重磅 | 谷歌Waymo最新发布可完全脱离人类操控的自动驾驶汽车
  3. 2010 年 360 盗取用户密码事件始末
  4. 波卡链Substrate (7)Grandpa协议一“概念说明”
  5. 工程之星android版使用,安卓版工程之星软件网络1+1模式及网络cors连接操作详解...
  6. 自定义存储过程和函数
  7. 来自前苹果高管Heidi Roizen的经验之谈
  8. 实战项目| 7天掌握神经网络预测模型
  9. python 点_Python中的方括号和点符号有什么区别?
  10. Quartz实线定期运行程序(Java)
  11. 用Navicat_SSH 连接数据库服务器
  12. java 转dwg转图片_dwg转pdf要怎么转换
  13. stm32实验报告心得体会_STM32实验报告
  14. sql server 2005安装需求
  15. 房屋户型图设计工具Room Arranger for Mac
  16. Activiti6在Springboot下的使用 6 并行网关的处理
  17. linux怎么检测硬盘坏道,linux怎么检测硬盘坏道|linux 硬盘坏道检测方法
  18. iOS——UINavigationController简单实用以及内存警告处理过程
  19. 计算机 键盘启动,键盘开机如何打开键盘
  20. 验证码集合_您网站的免费验证码集合

热门文章

  1. 人脸识别成“网红” 与交通行业结下不解情缘
  2. 2019-5-17:我的大学和我的ACM
  3. bochs中的bochsrc文件疑惑
  4. Python机器学习【二】 - 决策树
  5. Vista召唤:让暴风播放音量更猛烈些吧
  6. Python-推导式
  7. 激光溶脂效果好吗安全吗,肚子抽脂肪对身体有害吗
  8. 计算机连接无线网络的步骤,电脑应该如何连接WiFi 笔记本wifi上网设置方法【步骤详解】...
  9. 手把手教你做一个自定义表格标签
  10. SEO优化对商城系统的重要性