$ bash --version
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
Normalmente uso la versión bash anterior en una máquina Ubuntu 16.04 a través del terminal MATE. Sin embargo, actualmente estoy usando Terminal.app de macOS 10.14.6 para conectar SSH a esa máquina. Para .bash_profile
mi usuario es solo source
s .bashrc
, por lo que no debería haber diferencias de configuración además de los emuladores de terminal.
Tengo variables de entorno que uso para abreviar rutas de directorio largas pero de uso frecuente, definidas en mi .bashrc, algo como:
export FOO=~/foo/bar/baz
export BAR=~/foo/bar/baz/qux/foobar
Tengo la costumbre de utilizar la función de tabulación (me refiero a escribir parte del nombre y presionar la tecla tabulación) en los subdirectorios de estas variables, para poder escribir:
cd $FOO/mi<TAB>
y obten:
cd $FOO/misc/
Este es el comportamiento bajo el terminal MATE al que estoy acostumbrado y me gusta. Pero al usar Terminal.app para SSH en la misma máquina, se expande irritantemente la variable:
cd /home/andrea/foo/bar/baz/misc/
No sé por qué sucede esto, pero sospecho que Terminal.app envía una secuencia de escape diferente. Si escribo <ESC><TAB>
Terminal.app en lugar de <TAB>
, obtengo el comportamiento familiar y deseado (sin expansión de la variable de entorno). Desafortunadamente, no parece la secuencia de escape de Terminal.app.para pestañaes configurable.
Entonces, quiero saber si puedo obligar a bash a usar siempre el comportamiento que quiero.
En las respuestas abash: el nombre de la variable no se expande al completar la pestaña(donde alguien tiene elopuestoproblema para mí, quieren tener el comportamiento que yonoquiero), lo he visto shopt -s direxpand
. Entonces probé su inverso shopt -u direxpand
y no ayudó. Enhttps://stackoverflow.com/questions/6418493/bash-variable-expansion-on-tab-completeTambién vi shopt -s cdable_vars
, pero tampoco shopt -u cdable_vars
ayudó.
Estoy en una pérdida. :(