La fonction de saisie semi-automatique de bash ne semble pas fonctionner avec les variables d'environnement dans 11.04. Le comportement actuel est indiqué ci-dessous
export SCRIPT=/home/user/script
cd $SCRIPT/<tab>
entraîne l' \
ajout d' une barre oblique inverse ( ) avant que $SCRIPT
l'invite ne devienne
cd \$SCRIPT/
La même chose se produit si cd
est remplacé par ls
ou toute autre commande
De plus, s'il y a un fichier exécutable dans le chemin d'accès contenu dans $ SCRIPT et que je veux l'exécuter
$SCRIPT/<tab>
Bash n'affiche pas les options à l'intérieur du dossier (qu'il y ait un seul fichier ou plusieurs fichiers / répertoires à l'intérieur du chemin contenu dans les variables d'environnement).
En d'autres termes, la saisie semi-automatique ne fonctionne pas avec les variables d'environnement.
11.04
bash
environment-variables
nilchat
la source
la source
Réponses:
Ce bogue a été introduit dans bash 4.2. Il y a un long fil à ce sujet ici:
http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00274.html
En bref, Chet Ramey, le développeur de bash, ne sait pas encore comment y remédier.
la source
Pour récupérer l'ancien comportement, utilisez la commande
ou l'inclure dans votre
.bashrc
Si vous utilisez le même .bashrc avec différentes versions de bash, utilisez
la source
La solution de contournement suggérée dans http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00274.html est:
<Tab>
pour compléter automatiquement votre variable d'environnement st vous dit en ligne de commandecd $MYVAR
<Esc>
+<Ctrl>-E
pour développer la ligne de commande actuelle, c'est-à-dire remplacer$MYVAR
par sa valeur, le chemin/
, puis profitez de<Tab>
la saisie semi-automatique comme d'habitudeCela suppose que vous êtes en mode emacs (
set -o emacs
) et que vous l'avezbash_completion
configuré de manière raisonnablecd
(par exemplecomplete -o nospace -F _cd cd
).Malheureusement, cela ne fonctionne pas en mode vi (
set -o vi
) car l'expansion de la ligne de commande n'est pas disponible alors.la source
Après avoir tapé la variable shell
tapez Cntrl-Alt-E. Cela étend la variable
Cela fonctionne avec EDITOR = vi dans Fedora 16.
la source