Answers:
如果bash找不到匹配项,它将使用*
未扩展的s 将文字字符串传递给应用程序。例如:
$ ls
foo
$ cat /tmp/test
echo $1
$ /tmp/test *foo*
foo
$ /tmp/test *bar*
*bar*
bash
扩展*foo*
是因为它匹配,但因为不匹配而*bar*
直接通过了。该nullglob
选项将告诉bash将不匹配的模式解析为空字符串:
$ shopt -s nullglob
$ /tmp/test *bar*
$
zsh: no matches found
。
no_nomatch
触发此行为。
find . -name *foo*
,find . -name '*foo*'
将允许通配符匹配按预期进行。