Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86972
  • 博文数量: 13
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 320
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-06 18:50
文章分类

全部博文(13)

文章存档

2011年(1)

2009年(6)

2008年(6)

我的朋友

分类: LINUX

2008-04-03 23:06:29

bash提供了7种展开功能,分别是(按展开执行顺序):括号展开,波号展开,变量展开,算术展开,命令替换,字分割和路径名展开。

括号展开
    括号展开有两种形式:
       a{b,c,d}e      -->      abe ace ade
       a{b..d}e       -->      abe ace ade
    括号展开还可以嵌套使用:
       1{aa,b{c,d}}2  -->      1aa2 1bc2 1bd2

波号展开
    波号展开后相当于指定用户的主目录路径(假设当前登录用户为user)
       ~            -->      /home/user
       ~root        -->      /root

变量展开
    假设有变量x:
       x="Hello World"
    那么
       $x           -->      Hello World
       ${x}         -->      Hello World
       $xasdf       -->      替换为名为xasdf的变量的值,假如没有定义,留空
       ${x}asdf     -->      Hello Worldasdf

算术展开
    算术展开的一般形式:
       $((expression))
    可以在算术展开里面进行数学运算:
       $((100 + 9))   -->   109

命令替换
    命令替换的一般形式:
       $(cmd)
       `cmd`
    如:
       $(echo asdf)   -->   asdf

字分割
    若变量展开、算术展开、命令替换没有用双引号括起来,bash会对其进行字分割:
       x="Hello World",展开后得到两个词:"Hello", "World"
       $x      -->      Hello World

路径名展开
    用于匹配文件系统中存在的文件名
       *      匹配任意串,包括空串
       ?      匹配任意一个字符
       [...]    匹配[]中的任意一个字符
       [!...]
       [^...]   不匹配[!], [^...]中的任意一个字符

进程替换
    进程替换需要系统支持fifo文件
    一般形式为:
       >(list)      替换为list的标准输入文件名,往该文件写入数据可以让list从标准输入中读取得到
       <(list)      替换为list的标准输出文件名,可以读取这个文件得到list的标准输出
阅读(761) | 评论(0) | 转发(0) |
0

上一篇:如何使用grep

下一篇:写给女人的

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