2009-04-21 6 views
1

Mein inputrc ist leer. Ich benutze Bash.Konnte keine Tab-Vervollständigung von Systemvariablen ohne Backslash haben

Problem: Ich bin bei

cd $te 

Ich drücke Tab, und ich bekomme

cd \$test 

Wie können Sie die Tab-Vervollständigung ohne Backslash in Bash haben?

+2

Haben Sie vielleicht eine Datei im aktuellen Verzeichnis namens "$ test"? –

+0

Ich sehe nichts, was ich einen "Blitz" nennen würde (in * irgendeiner * Richtung). Könnten Sie das näher ausführen? – dmckee

+0

Ich denke, er meinte Schrägstrich. – marcog

Antwort

4

Sie nicht. In Bash wird ein $ beim Abrufen von Variablen verwendet. Zum Beispiel:

SWEETVAR='hi' 
echo $SWEETVAR 

Aus diesem Grunde, ein $ im Namen einer Datei oder ein Ordner muß entwertet werden, sonst wird es als var interpretiert.

+0

@Allyn: Wie kann man eine var anstelle einer Systemvariable in Bash haben, so dass Sie nicht den Backslash für die Flucht benötigen. –

+0

Sie meinen anscheinend mit einem var einem Alias. –

1

Das Problem scheint in MacPorts zu sein.

Es hat eine alte Version von Bash_completion.

Die neueste Version hat im Anschluss an die in

complete -o nospace -F _cd cd 

während ich folgendes haben nach der Ausführung des Befehls

$complete | grep cd 
complete -o filenames -o nospace -F _cd cd 

ich um einen Kommentar zu MacPorts' irc gesendet bash-completion @ 20060301 zu aktualisieren (sysutils).

0

Ich zog schließlich nach Zsh. Es löste das Problem für mich.

Verwandte Themen