全部博文(471)
分类: LINUX
2013-02-22 19:08:45
[] 代表指定的一个字符范围,只要文件名中[ ]位置处的字符在[]中指定的范围之内,那么这个文件名就与这个模式串匹配。
方括号中的字符范围可以由直接给出的字符组成,也可以由表示限定范围的起始字符、终止字符及中间的连字符(-)组成。例如,f [a- d] 与f [abcd]的作用相同。Shell将把与命令行中指定的模式串相匹配的所有文件名都作为命令的参数,形成最终的命令,然后再执行这个命令。
最后说明一下使用通配符时需要注意的一些问题。由于*、?和[]对于shell来说具有比较特殊的意义,因此在正常的文件名中不应出现这些字符。特别是在目录名中不要出现它们,否则Shell匹配起来可能会无穷的递归下去。另外要注意的一点是:如果目录中没有与指定的模式串相匹配的文件名,那么Shell将使用此模式串本身作为参数传给有关命令。这可能就是命令中出现特殊字符的原因所在。
常用的位置参数和特殊变量
$0 | 相当于C语言main函数的argv[0] |
$1、$2... | 这些称为位置参数(Positional Parameter),相当于C语言main函数的argv[1]、argv[2]... |
$# | 相当于C语言main函数的argc - 1,注意这里的#后面不表示注释 |
$@ | 表示参数列表"$1" "$2" ...,例如可以用在for循环中的in后面。 |
$? | 上一条命令的Exit Status |
$$ |
当前Shell的进程号 |