Wie stelle ich sicher, dass Bash beim Vervollständigen mit der Tabulatortaste *niemals* Pfade in Umgebungsvariablen erweitert?

Wie stelle ich sicher, dass Bash beim Vervollständigen mit der Tabulatortaste *niemals* Pfade in Umgebungsvariablen erweitert?
$ bash --version
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)

Normalerweise verwende ich die obige Bash-Version auf einem Ubuntu 16.04-Rechner über das MATE-Terminal. Derzeit verwende ich jedoch Terminal.app von macOS 10.14.6, um mich per SSH mit diesem Rechner zu verbinden. Das ist .bash_profilefür meinen Benutzer nur sources .bashrc, also sollte es außer den Terminalemulatoren keine Konfigurationsunterschiede geben.

Ich habe Umgebungsvariablen, die ich zum Abkürzen häufig verwendeter, aber langer Verzeichnispfade verwende. Diese sind in meiner .bashrc-Datei definiert, etwa so:

export FOO=~/foo/bar/baz
export BAR=~/foo/bar/baz/qux/foobar

Ich habe die Angewohnheit, bei Unterverzeichnissen dieser Variablen die Tab-Vervollständigung zu verwenden (also einen Teil des Namens einzutippen und dann die Tabulatortaste zu drücken), sodass ich Folgendes eingeben kann:

cd $FOO/mi<TAB>

und bekomme:

cd $FOO/misc/

Dies ist das Verhalten unter dem MATE-Terminal, an das ich gewöhnt bin und das mir gefällt. Wenn ich jedoch Terminal.app verwende, um mich per SSH mit derselben Maschine zu verbinden, wird die Variable irritierenderweise erweitert:

cd /home/andrea/foo/bar/baz/misc/

Ich weiß nicht, warum das passiert, aber ich vermute, dass Terminal.app eine andere Escape-Sequenz sendet. Wenn ich <ESC><TAB>Terminal.app anstelle von eingebe <TAB>, erhalte ich das bekannte und gewünschte Verhalten (keine Erweiterung der Umgebungsvariable). Leider scheint es nicht die Escape-Sequenz von Terminal.app zu seinfür TABist konfigurierbar.

Ich möchte also wissen, ob ich Bash zwingen kann, immer das gewünschte Verhalten zu verwenden.

In den Antworten aufbash: Variablenname wird mit Tab-Vervollständigung nicht erweitert(wo jemand dieGegenteilProblem für mich, sie wollen das Verhalten haben, das ichnichtwill), habe ich gesehen shopt -s direxpand. Also habe ich das Gegenteil versucht, shopt -u direxpandund es hat nicht geholfen. Inhttps://stackoverflow.com/questions/6418493/bash-variable-expansion-on-tab-completeHabe ich auch gesehen shopt -s cdable_vars, hat aber auch shopt -u cdable_varsnicht geholfen.

Ich bin ratlos. :(

verwandte Informationen