Chinaunix首页 | 论坛 | 博客
  • 博客访问: 623064
  • 博文数量: 142
  • 博客积分: 116
  • 博客等级: 入伍新兵
  • 技术积分: 1445
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-28 08:37
文章分类

全部博文(142)

文章存档

2017年(7)

2016年(57)

2015年(48)

2014年(30)

我的朋友

分类: LINUX

2016-06-08 13:05:57

bash中,$'string' 这种引用方式是在man page的QUOTING这一节里进行说明的。

这种引用方式,会把含义转义字符(\n \t \nnn \xHH等)的string展开成一个字符串。
展开后的字符串是被单引号括起的。

下面是一些例子
  1. # 想要输出a换行b,要把转义字符括起来,并且使用echo -e才行。而直接echo $'a\nb'就可以。
  2. $ echo a\nb
    anb
    $ echo 'a\nb'
    a\nb
    $ echo -e 'a\nb'
    a
    b
    $ echo $'a\nb'
    a
    b

    # 把$'a\nb'存入变量后,echo时需要用双引号括起变量才可以。
    $ X=$'a\nb'
    $ echo $X
    a b
    $ echo "$X"
    a
    b

    # 当使用命令替换把命令的输出存入变量时,就是以$'string'这种形式保存的。
  3. $ Y=`free -m`
    $ set|grep ^Y
    Y=$'             total       used       free     shared    buffers     cached\nMem:         15952      15642        310          0        131       3553\n-/+ buffers/cache:      11957       3995\nSwap:         8091        689       7402'
    # 用双引号括起再echo,就能恢复出命令的执行结果。
    $ echo "$Y"
                 total       used       free     shared    buffers     cached
    Mem:         15952      15641        311          0        131       3553
    -/+ buffers/cache:      11957       3995
    Swap:         8091        689       7402


另外,还有一种$"string"的引用方式,会把string翻译成当前locale。(什么意思??)
阅读(1592) | 评论(0) | 转发(0) |
0

上一篇:keytool使用笔记

下一篇:ulimit整理

给主人留下些什么吧!~~