
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 glob
gibt
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 nullglob
die Zeichenfolge, da sie deaktiviert ist,*
nichtersetzt und Sie möchten ls
die 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