當 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
都設定了,則 - 如果不匹配 - 則返回錯誤。