74 votes

Comment faire en sorte que bash arrête d'échapper les $ lors de la complétion de la tabulation ?

J'ai ceci sur la ligne de commande :

ln -sf $PWD/wine-

et ensuite j'ai frappé Tab pour compléter le nom du fichier. Dans les versions précédentes d'Ubuntu, cela fonctionnait très bien pour compléter le nom de fichier. wine- nom de fichier (et comme effet secondaire $PWD serait élargi à ce moment-là). Mais maintenant, il se transforme en

ln -sf \$PWD/wine-

ce qui n'est pas du tout ce que je voulais dire et ne complète rien puisque le fichier ne commence pas littéralement par $ .

Comment faire pour que l'achèvement revienne à un comportement moins cassé ?

set me dit que ce sont mes paramètres actuels :

BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor

2voto

Michael Ryan Points 21

La désactivation de l'option Shell 'complete_fullquote' fait l'affaire :

shopt -u complete_fullquote

1voto

jozxyqk Points 993

Même avec la mise à jour de bash, j'ai trouvé $ s'échappe toujours.

  • Retirer le bash-completion (1:2.1-3.fc20) paquet
  • ou simplement ne pas s'approvisionner /etc/bashrc de ~/.bashrc semblait le réparer.

Je soupçonne qu'il me manquera certaines fonctions auxquelles je suis normalement habitué, mais je n'en ai pas encore remarqué.


Alternativement (au moins pour Fedora 26), ajoutez export BASH_COMPLETION_VERSINFO=0 avant de s'approvisionner /etc/bashrc . Cela fait croire au script problématique qu'il a déjà été sourcé.

0voto

mig Points 1

J'ai rencontré le même problème avec Bash dans Cygwin. J'ai résolu mon problème en définissant l'option suivante.

shopt -s cdable_vars

http://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X