variable español bash readline bash-completion

español - Expansión de la variable Bash en la pestaña completa



if bash (3)

Estoy ejecutando Ubuntu 11.04, y veo un comportamiento extraño cuando trato de usar tab-complete en bash en una ruta que comienza con una variable. Si tengo TOP = / scratch, y trato de completar la pestaña:

cd $ TOP / foo

cambia a

cd / $ TOP / foo

Prefiero que se complete a: cd $ TOP / foobar o cd / scratch / foobar, pero me conformaría con eso, simplemente no cambiando la línea y requiriéndome que elimine el escape de $.

¿Alguien sabe dónde en bash / readline debería buscar para solucionar esto?



Encontré el informe de error, por favor regístrese (si no lo está ya) y agréguese a la lista de "personas afectadas", simplemente lo hice:

https://bugs.launchpad.net/ubuntu/+source/bash/+bug/778627

Soluciones

Intente habilitar direxpand o cdable_vars :

shopt -s direxpand # or shopt -s cdable_vars

Al parecer, Esc Tab podría ser una solución :

No he encontrado una solución adecuada para esto, pero hay una solución. El escape de las variables de entorno se puede deshabilitar presionando Esc seguido de la pestaña.

# cd $SO + [Esc] + [Tab] # cd $SOME_DIR

¡Confirma eso como un error! Acabo de confirmar que lo mismo funciona en

No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 10.10 Release: 10.10 Codename: maverick

Me sale mal comportamiento en (actualizado) natty:

No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 11.04 Release: 11.04 Codename: natty

Aunque debo agregar que no se escapó la barra, pero la ruta (si bien es válida, existente, accesible y legible) no se está expandiendo.

Información: https://help.ubuntu.com/community/ReportingBugs


Estaba teniendo un problema similar en el bash cygwin (NT-6.1 2.0.1 2015-04-30) (GNU 4.3.33), especialmente cuando intentaba expandir por tabulaciones una ruta que contenía espacios.

Puse shopt -s direxpand en mi ~ / .bashrc. Problema resuelto.