bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html


有些时候在某些服务管理脚本中看到$"$string"或$"string",经过一些测试,又发现引号外面的$有和没有是一样的。一直也没去找究竟,刚才有人问了我,于是就去翻了下man bash,找到了解释。

(1).如果没有特殊定制bash环境或有特殊需求,$"string"和"string"是完全等价的,使用$""只是为了保证本地化。

以下是man bash关于$""的解释:

       A  double-quoted  string  preceded by a dollar sign ($"string") will cause the string to be translated according to the current locale.  Ifthe current locale is C or POSIX, the dollar sign is ignored.  If the string is translated and replaced, the replacement is double-quoted.

(2).还有$后接单引号的$'string',这在bash中被特殊对待:会将某些反斜线序列(如\n,\t,\",\'等)继续转义,而不认为它是字面符号(如果没有$符号,单引号会强制将string翻译为字面符号,包括反斜线)。简单的例子:

[root@xuexi ~]# echo 'a\nb'
a\nb
[root@xuexi ~]# echo $'a\nb'
a
b

以下是man bash里关于$'的说明:

Words of the form $'string' are treated specially.  The word expands to string, with backslash-escaped characters replaced as specified  by  the ANSI C standard.  Backslash escape sequences, if present, are decoded as follows:\a     alert (bell)\b     backspace\e\E     an escape character\f     form feed\n     new line\r     carriage return\t     horizontal tab\v     vertical tab\\     backslash\'     single quote\"     double quote\nnn   the eight-bit character whose value is the octal value nnn (one to three digits)\xHH   the eight-bit character whose value is the hexadecimal value HH (one or two hex digits)\uHHHH the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHH (one to four hex digits)\UHHHHHHHHthe Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHHHHHH (one to eight hex digits)\cx    a control-x character

shell中$后加引号有什么用($string和$'string')相关推荐

  1. shell 数组遍历加引号和不加引号的区别?

    前言 shell 是一个比较神奇的国度,里面有太多的坑需要填,今天需要填的坑就是,数组遍历在使用时加了引号和不加引号的区别. 案例 解析: 不加引号,数组中元素间的"空格"就会编程 ...

  2. hive sql中传date 指定后的“%Y-%m-%d“格式,需要加引号

    其中dt_playtime在shell中的变量赋值为dt_playtime=`date -d "$dt" +"%Y-%m-%d"` ##需要传递为字符串,加引号 ...

  3. shell 脚本中双引号、单引号、反引号的区别,其他命令

    如果make执行的命令前面加了@字符,则不显示命令本身而只显示它的结果; Android中会定义某个变量等于@,例如 hide:= @ 通常make执行的命令如果出错(该命令的退出状态非0)就立刻终止 ...

  4. Shell中常用的引号

    Shell之引号 在Shell中经常会使用到单引号.双引号.反引号(键盘中Tab键上方的按键).反斜线(转换某些Shell元字符的含义).如我们有时希望echo命令输出的字符中就包含$符号本身,但一般 ...

  5. location.pathname;outline:medium;undefined不能加引号

    1. location.pathname -- 返回URL的域名后的部分.例如 http://www.dreamdu.com/xhtml/ 返回/xhtml/ 2. 判断某个名称为undefined时 ...

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

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

  7. 字符串字段当条件查询的时候需要加引号吗_如此详细的SQL优化教程,是你需要的吗?...

    基础数据准备 二:五百万数据插入 上面插入几条测试数据,在使用索引时还需要插入更多的数据作为测试数据,下面就通过存储过程插入500W条数据作为测试数据 三:使用索引和不使用索引的比较 没有添加索引前一 ...

  8. js创建对象时,属性加引号与不加引号的区别(转)

    概要: 总结一下: 1. 命名要规范,变量名或者属性名不能用数字开头. 2. 可以加引号后使用,但调用要像数组中的属性那样调用  obj['888name'] 3. 符合规范的时候,加不加引号一样 以 ...

  9. SQL Server拼接字符串执行语句,引号中加引号。

    这个问题我搜了好多资料,终于发现了一个神奇的字符:char(39)表示引号. 问题描述: 我需要拼接一个@SQL字符串语句,用EXEC执行,设想拼接后执行的语句如下形式: select * from ...

最新文章

  1. PowerDesign的简单使用方法
  2. SET NOCOUNT的用法和注意事项
  3. 三、数据分析前,打下数据处理基础(下)
  4. Docker 容器从入门到Devops实践
  5. 网易2017校招编程:优雅的点
  6. P5110-块速递推【特征方程,分块】
  7. 网钛CMS PHP版蓝色响应式UI美化模板
  8. opencv 基本绘图函数
  9. hypermesh 复合材料_HyperMesh复合材料建模
  10. android studio 通知栏广播,Android消息推送,通知栏的显示和点击
  11. oracle数据库的sql语句练习1
  12. win10与win7系统之间文件共享
  13. 怎么用计算机进行进制间的换算,如何实现16进制与其他进制之间的转换,教你使用16进制计算器...
  14. 计算机网络密码凭据,电脑无法上网时总是提示需要输入网络密码如何解决
  15. Android 4高级编程(第3版)
  16. webQQ迷你版协议(基于http://w.qq.com)
  17. 用Python实现斐波那契数列代码
  18. 电脑上如何卸载html5,电脑安装影子系统后卸载不了怎么办
  19. python打印古诗_python打印古诗_python教程:利用python基础知识取出对应诗句
  20. JWT Token、ID Token、Access Token、Refresh Token

热门文章

  1. java中各进制之间的转换(十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制)...
  2. java word表格_java操作word的表格
  3. C语言——把结构体数据封装成TLV格式的数据
  4. Nginx —— nginx的命令行控制(nginx的启动与停止、重载配置文件、回滚日志文件、平滑升级等操作)
  5. Java 有关于线程
  6. JAVA----------------------华为机试--------------------------删除字符串中出现次数最少的字符...
  7. 项目微管理13 - 新人
  8. 软件工程——理论、方法与实践③
  9. SQL取出每个产品的Top n 条记录
  10. Eclipse快捷键指南