Runfirstall
当我想迭代目录(例如目录)的文件时,我通常会这样做:
for folder in $DIR/Runfirstall/*
然而我在一些代码中发现了下一句话:
for folder in $DIR/!(Runfirstall)/
这有同样的效果吗?
答案1
不,只要extglob
设置了 shell 选项,第二个选项就会循环遍历所有目录即未命名 Runfirstall
从man bash
:
如果使用内置命令 shopt 启用了 extglob shell 选项,则可以识别多个扩展模式匹配运算符。在以下描述中,模式列表是由 分隔的一个或多个模式的列表
|
。复合模式可以使用以下一个或多个子模式形成:?(pattern-list) Matches zero or one occurrence of the given patterns *(pattern-list) Matches zero or more occurrences of the given patterns +(pattern-list) Matches one or more occurrences of the given patterns @(pattern-list) Matches one of the given patterns !(pattern-list) Matches anything except one of the given patterns