《学习bash》笔记--引用

本文探讨了Shell脚本中反斜杠()的使用技巧,详细介绍了如何使用反斜杠转义不同类型的字符,并通过具体示例展示了如何正确输出单个或连续的反斜杠。

本文转载于:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=686286

我们知道在shell中有两类字符,一类是普通字符(literal),在shell中没有任何特殊意义;另一类是所谓“元字符”(meta),在shell中有特殊的含义或用法。

当我们需要去掉元字符的特殊含义而恢复其字面意义时就必须使用“引用”(quoting)。通常有三种引用方式,他们是转义(Escape,使用反斜杠字符\,即backslash),强引用(使用单引号',即single quote)和弱引用(使用双引号", 即double quote)。

转义:是用反斜杠放在需要转义的一个字符前,表示那个字符要看作一个普通字符。
强引用:是用单引号把要转义的字符串括起来,其中任何字符都看作普通字符,除了单引号自身。所以你无法在两个单引号之间包含单引号,用\转义也不行。
弱引用:是用双引号把要转义的字符串括起来,除了双引号"本身,其中的大部分字符都看作普通字符。例外的还有\,$,`三个特殊字符。因为\在""中是特殊字符,所以你可以在其中包含"本身,前提是必须转义。$是特殊字符,这表示你可以使用变量$var/${var}及其它,在ksh/bash中可以引用算术表达式的结果$((...)),还可以作命令替换$()。由于`是特殊字符在bsh中也可以作命令替换,但只能使用`...`的语法(这个在ksh/bash中也可以使用)。

今天我们单独研究一下反斜线\。这是一个有魔力的字符,它可以用来对任何字符转义,也包括它自己。但是在不同的shell实现中它的表现似乎不尽相同,有时结果让你会大吃一惊。

先来看一个简单的例子,假定我们要输出单独一个\,先用bash:

  1. $ echo \\
  2. \
  3. $ echo "\\"
  4. \
  5. $ echo '\'
  6. \

第一个echo,因为\是元字符,所以必须对它进行转义,所以我们必须用两个\。
第二个echo,因为""是弱引用,其中的\仍然是特殊字符,所以同样必须转义。
第三个echo,''是强引用,\在单引号之中是普通字符,这样就不用再转义了,所以只用一个\。

OK,假如我们要输出连续两个\,怎样呢?看一下:
  1. $ echo \\\\
  2. \\
  3. $ echo "\\\\"
  4. \\
  5. $ echo '\\'
  6. \\


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值