Tengo esto en la línea de comando:
ln -sf $PWD/wine-
y luego presioné Tabpara completar el nombre del archivo. En versiones anteriores de Ubuntu, esto funcionó bien para completar el wine-nombre de archivo (y como efecto secundario $PWDse expandiría en ese momento). Pero ahora lo convierte en
ln -sf \$PWD/wine-
que no es lo que quise decir en absoluto y no completa nada ya que el archivo no comienza literalmente $.
¿Cómo vuelvo a completar el comportamiento menos roto?
set me dice que estos son mis ajustes actuales:
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
command-line
bash
keturn
fuente
fuente

Respuestas:
Descubrí que las versiones bash> = 4.2.29 tienen una nueva
direxpandconfiguración de shopt. (Veaman docs/bash.1si echa un vistazo a un nuevo bash, o vea bash.1 de la línea 8951 )Si uno usa Quantal Quetzal 12.10 o de lo contrario se apodera (o desprotege y construye) una nueva fiesta, entonces:
Me da el comportamiento que quiero, necesito y amo.
Solución alternativa: Mientras tanto, Ctrl+ Alt+ en Elugar de Tabhacer lo que quiero también. Pero es incómodo.
Por cierto, hay varios hilos llamados "bash tab variable expansion question?" en gnu.bash.bug . Al leerlos, encontré la información aquí.
fuente
4.4.19en Ubuntu 18.04 y simplemente funciona. No estoy seguro cuando esto cambió.shopt -u progcompresuelve el problema sin expandir la variable a su valorbuscar
_filedir()en el script de nivel superior bash_completion y cambiar la líneaa
fuente
compopt: noquote: invalid option namePara aquellos (como yo) con 12.04 pueden usar ~ + en lugar de $ PWD ...
por ejemplo :
fuente
Incluso con el bash actualizado, descubrí que
$aún se escapa.bash-completion (1:2.1-3.fc20)paquete/etc/bashrcde~/.bashrcparecía solucionarlo.Sospecho que ahora me faltarán algunas características a las que normalmente estoy acostumbrado pero que aún no he notado.
Alternativa (al menos para Fedora 26), agregue
export BASH_COMPLETION_VERSINFO=0antes del abastecimiento/etc/bashrc. Esto hace que la secuencia de comandos problemática piense que ya ha sido obtenida.fuente
Esto lo arregló para mí, también eliminó muchas opciones de finalización "inteligentes" que he encontrado que se interponen en el camino al no completar los archivos que sé que están allí porque la estúpida cree que no los quiero como argumentos para un particular mando. ARRRGH
fuente
Encontré el mismo problema con Bash en Cygwin. Solucioné mi problema configurando la siguiente opción.
http://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
fuente
Deshabilitar la opción de shell 'complete_fullquote' hace el trabajo:
fuente