分类:
2008-05-10 13:16:20
1.通配符 *匹配任何长度的任何串 ?匹配单个字符 [...]匹配单个括号内的字符,[]中的-,!具有特殊含义,如: $echo[a-z]* 显示首字母在a-z范围内的文件或目录名 $echo[a,b]* 显示首字母为a或b的文件或目录名 $echo[!a]* 显示首字母不为a的文件或目录名(使用!时,!必须是[后的第一个字符) !还可与-和,一起使用 在Bash2.0以后的版本中,若用shopt打开了extglob选项(shopt-sextglob), 那么还可以扩展的模式表达式(模式表达式是指那些包含了一个或多个shell通配 符的字): *(pattern[|pattern]...)匹配模式的零次或多次出现 (pattern[|pattern]...)匹配模式的一次或多次出现 @(pattern[|pattern]...)匹配模式的一次出现 ?(pattern[|pattern]...)匹配任何一个模式.与*不同的是它不匹配 多个模式或模式的重复出现 !(pattern[|pattern]...)与?类似,不过是不包括指定模式的串 应该注意到,模式表达式的定义是递归的,每个表达式都可以包含一个或多个 模式,而且模式表达式也是可以嵌套的. 2.数据或程序控制使用的特殊字符: 主要有: >(file)输出重定向到文件 >>(file)输出重定向到文件,内容加到已存在的文件尾部 <(file)输入重定向到文件 ;命令分隔符 |管道符,把一条命令的输出重定向为另一命令的输入 &放在命令之后强迫命令在后台执行 ``命令替换,重定向一条命令的输出为另一命令的参数 3.用于引用和逃逸的特殊字符: 逃逸符\表示以后的字符不具有特殊的含义或不是Shell的函数, 除此之外,Bash还可以识别一些C语言中的转义序列,如: \a响伶 \b回退 \eEscape \n换行 \r回车 \t制表 \v制表 \\反斜线 \nnn八进制的ASCII编码 \xnnn十六进制的ASCII编码 但必须以如下方式进行引用: $'string' 引用符'和"将特殊字符或由空白分隔的字引用起来组成一个简单字符串 两者区别在与,双引号内的内容可以进行参数和变量替换 |