shell中$后加引号有什么用($string和$'string')
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')相关推荐
- shell 数组遍历加引号和不加引号的区别?
前言 shell 是一个比较神奇的国度,里面有太多的坑需要填,今天需要填的坑就是,数组遍历在使用时加了引号和不加引号的区别. 案例 解析: 不加引号,数组中元素间的"空格"就会编程 ...
- hive sql中传date 指定后的“%Y-%m-%d“格式,需要加引号
其中dt_playtime在shell中的变量赋值为dt_playtime=`date -d "$dt" +"%Y-%m-%d"` ##需要传递为字符串,加引号 ...
- shell 脚本中双引号、单引号、反引号的区别,其他命令
如果make执行的命令前面加了@字符,则不显示命令本身而只显示它的结果; Android中会定义某个变量等于@,例如 hide:= @ 通常make执行的命令如果出错(该命令的退出状态非0)就立刻终止 ...
- Shell中常用的引号
Shell之引号 在Shell中经常会使用到单引号.双引号.反引号(键盘中Tab键上方的按键).反斜线(转换某些Shell元字符的含义).如我们有时希望echo命令输出的字符中就包含$符号本身,但一般 ...
- location.pathname;outline:medium;undefined不能加引号
1. location.pathname -- 返回URL的域名后的部分.例如 http://www.dreamdu.com/xhtml/ 返回/xhtml/ 2. 判断某个名称为undefined时 ...
- Linux--Linux Shell 中的反引号,单引号,双引号
反引号位 (`) 位于键盘的Tab键的上方.1键的左方.注意与单引号(')位于Enter键的左方的区别. 在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一个命令行 ...
- 字符串字段当条件查询的时候需要加引号吗_如此详细的SQL优化教程,是你需要的吗?...
基础数据准备 二:五百万数据插入 上面插入几条测试数据,在使用索引时还需要插入更多的数据作为测试数据,下面就通过存储过程插入500W条数据作为测试数据 三:使用索引和不使用索引的比较 没有添加索引前一 ...
- js创建对象时,属性加引号与不加引号的区别(转)
概要: 总结一下: 1. 命名要规范,变量名或者属性名不能用数字开头. 2. 可以加引号后使用,但调用要像数组中的属性那样调用 obj['888name'] 3. 符合规范的时候,加不加引号一样 以 ...
- SQL Server拼接字符串执行语句,引号中加引号。
这个问题我搜了好多资料,终于发现了一个神奇的字符:char(39)表示引号. 问题描述: 我需要拼接一个@SQL字符串语句,用EXEC执行,设想拼接后执行的语句如下形式: select * from ...
最新文章
- PowerDesign的简单使用方法
- SET NOCOUNT的用法和注意事项
- 三、数据分析前,打下数据处理基础(下)
- Docker 容器从入门到Devops实践
- 网易2017校招编程:优雅的点
- P5110-块速递推【特征方程,分块】
- 网钛CMS PHP版蓝色响应式UI美化模板
- opencv 基本绘图函数
- hypermesh 复合材料_HyperMesh复合材料建模
- android studio 通知栏广播,Android消息推送,通知栏的显示和点击
- oracle数据库的sql语句练习1
- win10与win7系统之间文件共享
- 怎么用计算机进行进制间的换算,如何实现16进制与其他进制之间的转换,教你使用16进制计算器...
- 计算机网络密码凭据,电脑无法上网时总是提示需要输入网络密码如何解决
- Android 4高级编程(第3版)
- webQQ迷你版协议(基于http://w.qq.com)
- 用Python实现斐波那契数列代码
- 电脑上如何卸载html5,电脑安装影子系统后卸载不了怎么办
- python打印古诗_python打印古诗_python教程:利用python基础知识取出对应诗句
- JWT Token、ID Token、Access Token、Refresh Token
热门文章
- java中各进制之间的转换(十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制)...
- java word表格_java操作word的表格
- C语言——把结构体数据封装成TLV格式的数据
- Nginx —— nginx的命令行控制(nginx的启动与停止、重载配置文件、回滚日志文件、平滑升级等操作)
- Java 有关于线程
- JAVA----------------------华为机试--------------------------删除字符串中出现次数最少的字符...
- 项目微管理13 - 新人
- 软件工程——理论、方法与实践③
- SQL取出每个产品的Top n 条记录
- Eclipse快捷键指南