Question

Sous bash, les variables d’environnement se développeront correctement lorsqu’elles seront placées après une commande echo, par exemple:

echo $HOME

Mais après cd ou cat, bash place un \ avant le signe $, comme suit:

cd \$HOME

Si j'utilise une variable comme second argument d'une commande, elle ne se développera pas du tout:

cp somefile $HOM

Quelle option mystérieuse ai-je dans mon fichier .bashrc ou .inputrc qui me cause une telle détresse?

Était-ce utile?

La solution

Essayez complete -r cd pour supprimer la fonction spéciale d'achèvement de programmation que de nombreuses distributions Linux installent pour la commande cd . La fonction ajoute une recherche dans la liste des répertoires spécifiés dans la variable CDPATH dans les complétions par des tabulations pour cd , mais au prix de briser le comportement d'achèvement par défaut.

Voir http://www.gnu.org/ software / bash / manual / bashref.html # Achèvement programmable pour plus de détails sanglants.

Autres conseils

Ce que vous décrivez est une "fonctionnalité". introduite dans la version 4.2 de . Donc, vous ne disposez d'aucune option mystérieuse vous causant de la détresse, mais simplement "prévu". comportement.

Je trouve cela très gênant puisque je le préférais comme avant et je n’ai trouvé aucune option de configuration pour retrouver le comportement précédent. Jouer avec les options complete suggérées par d’autres réponses ne m’a pas mené nulle part.

Pour la seconde instance, vous pouvez appuyer sur Echap avant tab pour le résoudre.

Je ne connais pas la solution à votre problème, mais vous pouvez vous rendre dans / etc / bash_completion ou dans les fichiers sous /etc/bash_completion.d pour déterminer les éléments. Les commandes utilisent l'auto-complétion et comment.

help complete

Cela pourrait également être utile.

Le manuel de référence Bash contient plus d'informations que vous ne le souhaitez. sur les errata d'expansion.

L'article 8.7 lui ressemble serait l'endroit pour commencer. Il donne des informations sur la fonction 'complète', entre autres.

Je réponds à une question de 4 ans! Fantastique!

C’est un bug / une fonctionnalité qui a été introduit involontairement dans la v4.2 et qui n’a pas été remarqué pendant une longue période. Cela a été souligné par geirha dans cette bande de roulement . Fonctionnalité non souhaitée ici

J'ai rencontré ce problème lorsque j'utilisais Ubuntu à la maison. Au travail, j'ai bash-3,00, alors j'ai passé un peu de temps à parcourir le site pour voir ce qui se passe. Je me demande si je peux "déclasser" ....

Vérifiez la réponse pour https://superuser.com/questions/434139/urxvt-tab-expand-environment-variables"> https://superuser.com/questions/434139/urxvt-tab-expand-environment-variables"> par Dmitry Alexandrov:

  

Ceci concerne l’option direxpand. $ shopt -s direxpand et $ FOO_PATH / seront développés par la tabulation TAB.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top