在大多数 shellnullglob中不是默认的。这意味着,例如,如果您运行此命令
ls *
Run Code Online (Sandbox Code Playgroud)
在一个空目录中,它会将*glob扩展为一个 literal *,而不是一个空的参数列表。有一些方法可以改变这种行为,这样*在一个空目录中将返回一个空的参数列表,这看起来更直观。
那么,是否有理由nullglob默认禁用?如果是,那是什么原因?
我想列出的所有文件的文件夹,名为中foldername有扩展test,atest或btest。
我的直接想法是跑 ls ./foldername/*.{a,b,}test
这工作正常,除非扩展名没有任何内容atest,在这种情况下我会收到错误消息zsh: no matches found: ./foldername/*.atest。
有什么办法可以简单地忽略此错误并打印确实存在的文件?
我需要它在 ZSH 和 BASH 中工作。