同一商店有不同的通配符行为吗?

同一商店有不同的通配符行为吗?

我在同一台机器上打开了多个 shell (bash),在其中一个 shell 中,通配符似乎已停止。ls *给出ls: *: No such file or directory,等等。我想我一定是错误地设置了一些通配符选项,但shopt | grep glob给出

dotglob         off
extglob         off
failglob        off
nocaseglob      off
nullglob        off

和我的其他 shell 一样。这可能是什么原因造成的?

答案1

如果当前目录为空,则*模式将不会匹配任何内容。在这种情况下,由于nullglob为关闭,因此*字符串为不是替换,并要求ls列出名为的文件"*"。如果希望模式在不匹配任何内容时被替换为空字符串,请使用shopt -s nullglob

相关内容