Unterschiedliches Globbing-Verhalten bei gleichen Shopts?

Unterschiedliches Globbing-Verhalten bei gleichen Shopts?

Ich habe mehrere Shells (Bash) auf derselben Maschine geöffnet und in einer davon scheint das Globbing gestoppt zu sein. ls *gibt ls: *: No such file or directory, und so weiter. Ich dachte, ich hätte versehentlich einige Glob-Optionen festgelegt, aber shopt | grep globgibt

dotglob         off
extglob         off
failglob        off
nocaseglob      off
nullglob        off

das gleiche wie bei meinen anderen Shells. Was könnte die Ursache dafür sein?

Antwort1

Wenn Ihr aktuelles Verzeichnis leer ist, *wird das Muster nicht übereinstimmen. In diesem Fall ist nullglobdie Zeichenfolge, da sie deaktiviert ist,*nichtersetzt und Sie möchten lsdie Datei mit dem Namen auflisten "*". Wenn Sie möchten, dass das Muster durch eine leere Zeichenfolge ersetzt wird, wenn es mit nichts übereinstimmt, verwenden Sieshopt -s nullglob

verwandte Informationen