shell中$后加引号有什么用($string和$'string')
生活随笔
收集整理的这篇文章主要介绍了
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')的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: cscope使用技巧
- 下一篇: jQuery01