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