龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 操作系统 > LINUX系统 >

Bash中的特殊字符

时间:2011-03-20 22:37来源:未知 作者:admin 点击:
分享到:
1.通配符 * 匹配任何长度的任何串 ? 匹配单个字符 [...] 匹配单个括号内的字符,[]中的-,!具有特殊含义,如: $ echo [a-z]* 显示首字母在a-z范围内的文件或目录名 $ echo [a,b]* 显示首字母为a或

  1.通配符

   *   匹配任何长度的任何串

   ?   匹配单个字符

   [...] 匹配单个括号内的字符,[]中的-,!具有特殊含义,如:

   $ echo [a-z]*

    显示首字母在a-z范围内的文件或目录名

   $ echo [a,b]*

    显示首字母为a或b的文件或目录名

   $ echo [!a]*

    显示首字母不为a的文件或目录名(使用!时,!必须是[后的第一个字符)!还可与-和,一起使用

  

   在Bash 2.0以后的版本中,若用shopt打开了extglob选项(shopt -s extglob),那么还可以扩展的模式表达式(模式表达式是指那些包含了一个或多个shell通配符的字):

   *(pattern [|pattern] ...)   匹配模式的零次或多次出现

   +(pattern [|pattern] ...)   匹配模式的一次或多次出现

   @(pattern [|pattern] ...)   匹配模式的一次出现

   ?(pattern [|pattern] ...)   匹配任何一个模式.与*不同的是它不匹配

                  多个模式或模式的重复出现

   !(pattern [|pattern] ...)   与?类似,不过是不包括指定模式的串

   应该注意到,模式表达式的定义是递归的,每个表达式都可以包含一个或多个模式,而且模式表达式也是可以嵌套的.

  

  2.数据或程序控制使用的特殊字符:

   主要有:

   > (file)   输出重定向到文件

   >> (file)   输出重定向到文件,内容加到已存在的文件尾部

   < (file)   输入重定向到文件

   ;       命令分隔符

   |       管道符,把一条命令的输出重定向为另一命令的输入

   &       放在命令之后强迫命令在后台执行

   ``      命令替换,重定向一条命令的输出为另一命令的参数

  

  3.用于引用和逃逸的特殊字符:

   逃逸符\    表示以后的字符不具有特殊的含义或不是Shell的函数,

          除此之外,Bash还可以识别一些C语言中的转义序列,如:

          \a   响伶

          \b   回退

          \e   Escape

          \n   换行

          \r   回车

          \t   制表

          \v   制表

          \\   反斜线

          \nnn  八进制的ASCII编码

          \xnnn  十六进制的ASCII编码

          但必须以如下方式进行引用:

          $'string'

   引用符'和"  将特殊字符或由空白分隔的字引用起来组成一个简单字符串

          两者区别在与,双引号内的内容可以进行参数和变量替换

精彩图集

赞助商链接