2008-09-19 7 views
14

In bash wird Umgebungsvariablen Tabula erweitert korrekt platziert, wenn nach einem Echo-Befehl, zum Beispiel:In bash, Umgebungsvariablen nicht Tabula Erweiterung korrekt

echo $HOME 

Aber nach cd oder Katze, bash stellt einen \ vor dem $ -Zeichen, etwa so:

cd \$HOME 

Wenn ich eine Variable als zweites Argument auf einen Befehl verwenden, wird es überhaupt nicht erweitern:

cp somefile $HOM 

Welche mysteriöse Option habe ich in meiner .bashrc- oder .inputrc-Datei, die mich so beunruhigt?

+0

keine Programmiersprache Frage –

+4

Scripting-Programmierung! – ColinYounger

+0

Es wäre sehr hilfreich zu wissen, welche Linux-Distribution oder welche Variante von Unix Sie verwenden. – ehdr

Antwort

4

komplett -r cd Versuchen Sie, die besondere programmatische Vervollständigungsfunktion, die viele Linux-Distributionen installieren für den cd Befehl zu entfernen. Die Funktion fügt das Durchsuchen einer Liste von Verzeichnissen, die in der CDPATH-Variablen angegeben sind, zu Tabulatorvervollständigungen für cd hinzu, jedoch auf Kosten des Unterbrechens des Standardabschlussverhaltens.

Weitere Details finden Sie unter http://www.gnu.org/software/bash/manual/bashref.html#Programmable-Completion.

3

Für die zweite Instanz können Sie ESC vor dem Tab drücken, um es zu lösen.

ich weiß nicht, die Lösung für Ihr Problem, aber man konnte oder die Dateien unter in /etc/bash_completion aussehen /etc/bash_completion.d zu bestimmen, welche Verwendung die automatische Vervollständigung Befehle und wie.

help complete 

Könnte auch hilfreich sein.

1

The Bash Reference Manual hat mehr Informationen, als Sie über Erweiterungs-Errata wünschen.

Section 8.7 sieht aus, als wäre es der Ort, um zu beginnen. Sie geben unter anderem Auskunft über die "komplette" Funktion.

4

Was Sie beschreiben, ist ein "Feature" introduced in bash 4.2. Du hast also keine mysteriöse Option, die dich in Bedrängnis bringt, sondern nur "beabsichtigtes" Verhalten.

Ich finde das sehr nervig, da ich es so wie früher vorzog und noch keine Konfigurationsoptionen gefunden habe, um das frühere Verhalten wieder zu bekommen. Das Spielen mit complete Optionen, wie von anderen Antworten vorgeschlagen, brachte mich nirgendwohin.

+3

Dies ist die richtige Antwort; Das Zeug über die Autovervollständigung ist ein Symptom, nicht die Ursache. Ein "Direxpand" -Shop ist auf dem Weg, dieses Problem zu beheben. – Nelson

0

Ich beantworte 4-jährige Frage! Fantastisch!

Dies ist ein Bash Bug/Feature, der unbeabsichtigt in v4.2 eingeführt wurde und lange Zeit unbemerkt blieb. Dies wurde von Geirha in this tread hingewiesen. Als unbeabsichtigtes Feature bestätigt here

Ich stieß auf dieses Problem, wenn ich Ubuntu zuhause ausführte. Bei der Arbeit habe ich bash-3.00, also habe ich einige Zeit damit verbracht, herumzusuchen, um zu sehen, was vor sich geht. Ich frage mich, ob ich 'downgrade' kann ....

Verwandte Themen