相同的商店有不同的通配行為?

相同的商店有不同的通配行為?

我在同一台機器上打開了多個 shell (bash),其中一個機器上的通配符似乎已經停止。ls *給出ls: *: No such file or directory,等等。我想我一定是錯誤地設定了一些全域選項,但是shopt | grep glob給了

dotglob         off
extglob         off
failglob        off
nocaseglob      off
nullglob        off

和我的其他外殼一樣。可能是什麼原因造成的?

答案1

如果目前目錄為空,則該*模式將不符合任何內容。在這種情況下,由於nullglob關閉,*字串是不是已替換,並且您要求ls列出名為"*".如果您希望模式在不匹配任何內容時被替換為空字串,請使用shopt -s nullglob

相關內容