
同じマシンで複数のシェル(bash)を開いていますが、そのうちの1つでグロブが停止しているようです。などが表示されます。 誤ってグロブオプションを設定したに違いないと思いましたが、 が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