Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/03/2018, à 09:54

ar barzh paour

[Abandonné] yad bug avec !$

deux ans après je me remets à  yad

je tombe avec l'utilisation des comboBox sur un os
le contexte :
man yad précise :

   Form options
       --field=LABEL[:TYPE]
       pour le TYPE CB :
       CB - combo-box field. Initial value is a list VAL1!VAL2!.... The
              separator is the same as in NUM field.
       pour le type NUM       
       NUM   .......................    `!'  is a default item separator.

ce que je veux c'est un choix entre Data et SH dans une  boîte (en utilisant yad bien sur)

ce code fonctionnne bien dans un script : j'ai bien choix entre Data et SH etc

#!/bin/bash
rep1="Data"
rep2="SH"
res=$( yad \
    --form \
    --field="Répertoire de recherche :CB" "$rep1!$rep2" \
   )
echo $?   
echo $res

MAIS il ne fonctionne pas correctement dans un terminal

jpb@jpb-desktop:~$ rep1="Data"
jpb@jpb-desktop:~$ rep2="SH"
jpb@jpb-desktop:~$ res=$( yad \
>     --form \
>     --field="Répertoire de recherche :CB" "$rep1!$rep2" \
    --field="Répertoire de recherche :CB" "$rep1\rep2" \
>    )
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.

la boite affiche un seul choix Data<retour chariot>ep2
le résultat après validation

jpb@jpb-desktop:~$ echo $res
ep2|
jpb@jpb-desktop:~$ 

qui est du au !$ qui est interprété ? , j'ai essayé sans succès avec !\$rep2 avec !\$$rep2

j'ai quand même trouvé pour que cela fonctionne
d'après man yad

       --item-separator=STRING
              Set  separator  character for combo-box or scale values. Default
              is `!'.
rep1="Data"
rep2="SH"
res=$( yad \
    --form \
    --item-separator="|" \
    --field="Répertoire de recherche :CB" "$rep1|$rep2" \
   )

comme j'utilise beaucoup le terminal pour faire des essais , j'ai mis du temps avant de solutionner , et donc je le signale ici 

avez-vous un explication (en particulier sur le !$ )
EDIT trouvé :
!!:$ désigne le dernier argument de la commande précédente. Cela peut être raccourci à! $

quelqu'un a-t-il eu d'autres découvertes analogues sur yad ?

Dernière modification par ar barzh paour (Le 27/10/2018, à 14:49)


Ubuntu 18.04 (sept 2018) (était en essai depuis 12/2017)
Ubiuntu 16.04 (07/2016) et diverses versions  Ubuntu 14.04 ,  Studio 14.04 LTS 64 bits , MATE 16.04
(03/2018) : PC          : Intel(R) Pentium(R) CPU G4600 @ 3.60GHz  + 4GiB RAM DDR4-2400
(06/2017) : Portable : Intel(R) Core(TM)2  Duo CPU     T5750  @ 2.00GHz 3Go de RAM DDR2 667 Mhz Ubuntu 16.04

Hors ligne