Actuellement j'ai eu le coup une fois, lorsqu'il fallait charger le module canberra-gtk pour les programmes java.
En fait une variable $GTK_MODULES est définie et contient tous les modules gtk séparés par des deux points (:).
Visiblement j'ai 2 modules gtk, tous 2 servant à ajouter canberra-gtk-module. Les fautifs ? 52libcanberra-gtk-module_add-to-gtk-modules et 52libcanberra-gtk3-module_add-to-gtk-modules. Avec un code identique :
if [ -z "$GTK_MODULES" ] ; then
GTK_MODULES="canberra-gtk-module"
else
GTK_MODULES="$GTK_MODULES:canberra-gtk-module"
fi
export GTK_MODULES
Et la paf c'est le drame, GTK_MODULES=canberra-gtk-moduleanberra-gtk-module. naturellement :D.Vous venez d'assister à l'effet du modifier :c qui au passage n'existe pas et disparaît. Pour info, ce n'est pas le cas de :g, tout aussi inexistant mais qui s'affiche quand même…
Possible que ma doc ne soit pas à jour.
Les modifiers existe aussi dans bash mais sont moins nombreux et ne s'utilisent qu'avec l'historique (paragraphe HISTORY EXPANSION du man).
echo unfichier.txt
echo !:1:r
resultat :
unfichier.txt unfichier
Quasiment jamais utilisé en fait.
Mais voilà, zsh les généralise aussi aux variables ce qui engendre une erreur dans la variable GTK_MODULES.
Alors comment faire ?
Simple, entourer la variable d'accolades:
GTK_MODULES="${GTK_MODULES}:canberra-gtk-module"
Aucun commentaire:
Enregistrer un commentaire