0
所以,我现在倾向于Bash脚本编写,而且我对模式匹配和文件名扩展之间的区别有点困惑。Bash:模式匹配/文件名扩展
字分开后,除非
-f' option has been set (see section 4.3.1 The Set Builtin), Bash scans each word for the characters
* '?', and
['。如果出现这些字符中的一个,则将该字视为模式,并用符合该模式的按字母顺序排列的文件名列表替换。
这对我来说意味着以下可能不应该做我们想做:
if [[ $a == [cb]at* ]] ; then ...
在这种情况下[cb]at*
不会扩展到文件列表开始猫或蝙蝠为上面的引用表明,但更像是一个非常有限的正则表达式。为什么?什么时候做字符*?[就像正则表达式而不是扩展到当前目录中的匹配文件?