资料地址:Bash 脚本教程
Bash 的模式扩展(通配符)
Bash 一共提供八种扩展:
- 波浪线扩展
?
字符扩展*
字符扩展- 方括号扩展
- 大括号扩展
- 变量扩展
- 子命令扩展
- 算术扩展
Bash 是先进行扩展,再执行命令。因此,扩展的结果是由 Bash 负责的,与所要执行的命令无关。命令本身并不存在参数扩展,收到什么参数就原样执行。这一点务必需要记住。
注意,*
不会匹配隐藏文件(以.
开头的文件),即ls *
不会输出隐藏文件。
如果要匹配隐藏文件,需要写成.*
。
量词语法:
?(pattern-list)
:匹配零个或一个模式。*(pattern-list)
:匹配零个或多个模式。+(pattern-list)
:匹配一个或多个模式。@(pattern-list)
:只匹配一个模式。!(pattern-list)
:匹配给定模式以外的任何内容。
1 | $ ls abc?(.)txt |
上面例子中,?(.)
匹配零个或一个点。