当 glob 与任何东西都不匹配时的行为
制备
$ mkdir globbing
$ cd globbing
$ mkdir -p folder/{sub,another}folder/content/deepfolder/
touch macy stacy tracy "file with space" folder/{sub,another}folder/content/deepfolder/file .hiddenfile
$ shopt -u nullglob
$ shopt -u failglob
$ shopt -u dotglob
$ shopt -u nocaseglob
$ shopt -u extglob
$ shopt -u globstar
如果 glob 不匹配任何东西,结果由 nullglob
和 failglob
选项决定。如果它们都没有设置,如果没有匹配,Bash 将返回 glob 本身
$ echo no*match
no*match
如果 nullglob
被激活则没有返回任何内容(null
):
$ shopt -s nullglob
$ echo no*match
$
如果 failglob
被激活,则返回错误消息:
$ shopt -s failglob
$ echo no*match
bash: no match: no*match
$
请注意,failglob
选项取代 nullglob
选项,即,如果 nullglob
和 failglob
都设置了,则 - 如果不匹配 - 则返回错误。