bash / readline kann den Verzeichnisnamen nicht automatisch vervollständigen

429
Martin Kunev

Ich habe eine ausführbare Datei in einem Unterverzeichnis des aktuellen Verzeichnisses:

~ $ ls -l src/users -rwxr-xr-x 1 me users 1001K Nov 17 18:52 src/users* 

Ich versuche es auszuführen, indem ich tippe srund dann auf die Registerkarte klickt. Es gibt zwei Möglichkeiten der Vervollständigung (ein Verzeichnis bei mir zu Hause und eine ausführbare Datei in / usr / bin /). Ich würde also erwarten, dass bash sie mir zeigt:

~ $ sr src/ srptool 

Stattdessen wird der Name der ausführbaren Datei vervollständigt srptool(das Verzeichnis wird mit meiner ausführbaren Datei ignoriert).

Ich habe mit einem anderen Verzeichnisnamen getestet und festgestellt, dass der Verzeichnisname wie erwartet von bash abgeschlossen wird, wenn die einzige mögliche Fertigstellung der Verzeichnisname ist.

Das gleiche Verhalten tritt in bash 3.2.53 unter Mac und 4.3.39 unter Linux auf.

Ich erinnere mich daran, dass ich vorher gearbeitet habe. Ich bin nicht sicher, ob es sich um eine Bash- oder eine Readline-Ausgabe handelt. Irgendwelche Ideen?

1
Haben Sie versucht `. / Sr`? Run CMD vor 9 Jahren 0
@ ClassStacker Das Problem ist nicht, dass ich nicht weiß, wie ich es ausführen soll. Ich frage mich, warum es das Verzeichnis in meinem Beispiel ignoriert. Martin Kunev vor 9 Jahren 0

1 Antwort auf die Frage

1
Larssend

Ihr $PATHenthält entweder ./oder das übergeordnete Verzeichnis von srcund srptool.

Die automatische Vervollständigung von Bash vervollständigt die in Ihrem System gefundenen Befehle. $PATHWenn sich ./also in Ihrem aktuellen Arbeitsverzeichnis ausführbare Dateien befinden, können TabSie mit Bash darin den Namen der darin enthaltenen ausführbaren Dateien erweitern.