当 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 不匹配任何东西,结果由 nullglobfailglob 选项决定。如果它们都没有设置,如果没有匹配,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 选项,即,如果 nullglobfailglob 都设置了,则 - 如果不匹配 - 则返回错误。