Es gibt Dateisysteme, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird. Auf solchen Systemen ist es sinnvoll, bei der Dateinamenvervollständigung zwischen Groß- und Kleinschreibung zu unterscheiden. In einer idealen Welt könnte bash erkennen, ob eine Komponente eines Dateipfads zwischen Groß- und Kleinschreibung unterscheidet, aber in der Praxis gibt es keine Standardschnittstelle, die diese Informationen bereitstellt. Bash greift also explizit auf Groß- und Kleinschreibung zurück: (Zitat von bash manual , Hervorhebung hinzugefügt)
completion-ignore-case
Wenn auf on
gesetzt, führt readline- Dateinamen Anpassung und Abschluss in Groß- und Kleinschreibung Mode. Der Standardwert ist 'aus'.
In ähnlicher Weise können Sie Glob Expansion und/oder Fallmuster so konfigurieren, dass Groß- und Kleinschreibung nicht berücksichtigt wird.
Aber Sie können nicht bash Variablen Groß-und Kleinschreibung beachten. $bash
und sind verschiedene Variablen. Ähnlich mit Bash-Funktionsnamen, Bash-Built-In-Namen und Bash-Schlüsselwörtern. Bash kann Tab-Vervollständigung mit all diesen durchführen, aber unabhängig von der Konfiguration der Groß-/Kleinschreibung des Dateinamens, ist die Vervollständigung der Tab-Groß- und Kleinschreibung von Bedeutung.
Während das wie eine vernünftige Begründung scheint, stellt sich die bash Tab-Vervollständigung heraus immer empfindlich außer ist case für Dateinamen (einschließlich Verzeichnisse und bash Befehle, die auf Dateinamen abbilden), die so konfiguriert werden kann, Fall- zu sein unempfindlich. Auch Dinge, bei denen typischerweise die Groß- und Kleinschreibung nicht beachtet wird, wie Signalnamen und Hostnamen, können nur unter Berücksichtigung der Groß- und Kleinschreibung ausgeführt werden.