#1 Le 03/06/2011, à 12:28
- Hizoka
[resolu] zenity et variables à espace
Bonjour,
je rencontre un soucis :
- Soit une variable :
TEST='FALSE "oui oui"'
- Soit une fenetre zenity de type liste
zenity --text="Votre choix" --list --radiolist --column="Choix" --column="nom" TRUE "non non"
jusque là tout va bien, mais si je veux mixer les 2 :
zenity --text="Votre choix" --list --radiolist --column="Choix" --column="nom" TRUE "non non" ${TEST}
ca ne passe plus...
après plein d'essaie... je viens vous demandez de l'aide.
Est-ce un bug ?
merci
Dernière modification par Hizoka (Le 03/06/2011, à 20:37)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#2 Le 03/06/2011, à 13:25
- Watael
Re : [resolu] zenity et variables à espace
salut
c'est, si je me souviens bien, dû au fait que le shell lit les quotes l'une après l'autre, et non comme des paires (comme des balises ouvrantes et fermantes en HTML).
soit tu passes par un tableau, soit par deux variables.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 03/06/2011, à 13:49
- Hizoka
Re : [resolu] zenity et variables à espace
ouais mais là, c'est un exemple simple...
en imaginant que la variable contient une liste de fichiers, tes solutions ne sont plus utilisables.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#4 Le 03/06/2011, à 14:04
- Watael
Re : [resolu] zenity et variables à espace
TEST=(FALSE ./*)
zenity --text="Votre choix" --list --radiolist --column="Choix" --column="nom" TRUE "non non" "${TEST[@]}"
semble fonctionner.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 03/06/2011, à 15:15
- Hizoka
Re : [resolu] zenity et variables à espace
non car ca donne :
FALSE fichier1 fichier2 fichier3 fichier4 fichier5
mais sur zenity ça affiche
fichier1
fichier3
fichier5
il faudrait :
FALSE fichier1 FALSE fichier2 FALSE fichier3 FALSE fichier4 FALSE fichier5
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#6 Le 03/06/2011, à 16:14
- AnsuzPeorth
Re : [resolu] zenity et variables à espace
Bjr,
zenity et les espaces ....
Utilise glade2script
=>[]
ps: voilà une idée de soft, un zenity like via g2s !
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#7 Le 03/06/2011, à 17:02
- Hizoka
Re : [resolu] zenity et variables à espace
en fait c'est pas franchement pour moi
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#8 Le 03/06/2011, à 18:43
- gerarmentor
Re : [resolu] zenity et variables à espace
La solution d'utiliser les tableaux, comme proposé par Watael, semble être la plus solide.
Dans le problème particulier de la liste des fichiers, on peut faire une boucle :
for i in ./* ; do TEST+=(FALSE "$i") ; done
zenity --text="Votre choix" --list --radiolist --column="Choix" --column="nom" TRUE "non non" "${TEST[@]}"
Hors ligne
#9 Le 03/06/2011, à 18:54
- Levi59
Re : [resolu] zenity et variables à espace
La solution d'utiliser les tableaux, comme proposé par Watael, semble être la plus solide.
Dans le problème particulier de la liste des fichiers, on peut faire une boucle :
for i in ./* ; do TEST+=(FALSE "$i") ; done zenity --text="Votre choix" --list --radiolist --column="Choix" --column="nom" TRUE "non non" "${TEST[@]}"
Je n'ai pas testé mais il me semble que les quote ici TEST+=(FALSE "$i") ne seront pas conservés dans "${TEST[@]}" et en cas d'espace dans $i, ça plantera la suite.
Si j'ai raison, Ceci serais plus sûr :
for i in ./* ; do TEST+=(FALSE "'$i'") ; done
zenity --text="Votre choix" --list --radiolist --column="Choix" --column="nom" TRUE "non non" "${TEST[@]}"
(ajout de ' ' entre les " " )
Dernière modification par Levi59 (Le 03/06/2011, à 18:55)
Hors ligne
#10 Le 03/06/2011, à 19:06
- gerarmentor
Re : [resolu] zenity et variables à espace
Tu te trompes levi59.
Hors ligne
#11 Le 03/06/2011, à 19:10
- FRUiT
Re : [resolu] zenity et variables à espace
'$i' va ajouter la chaine littérale « FALSE $i » autant de fois qu'il y a de fichiers...
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#12 Le 03/06/2011, à 19:23
- Levi59
Re : [resolu] zenity et variables à espace
@gerarmentor : Quelle est mon erreur? (Pour être sûr)
@FRUIT
J'ai compris le fonctionnement :
1ere itération :
i="bla"
${TEST[@]} donne ""
TEST+=(FALSE "$i")
${TEST[@]} donne "FALSE bla"
2eme itération :
i="bla bla"
${TEST[@]} donne "FALSE bla"
TEST+=(FALSE "$i")
${TEST[@]} donne "FALSE bla FALSE bla bla"
... etc
Maintenant si je met ça dans un zenity, le dernier "bla" ne sera pas bien pris en compte... Si?
C'est pour ça que je propose le quote simple en renfort :
${TEST[@]} donne "FALSE 'bla'"
TEST+=(FALSE "'$i'")
${TEST[@]} donnerait "FALSE 'bla' FALSE 'bla bla'"
EDIT :
Je viens de trouver un PC pour tester et je viens de voir que je me trompais... Mea culpa.
Il prend les éléments de la liste individuellement même avec les espaces.
Dernière modification par Levi59 (Le 03/06/2011, à 19:39)
Hors ligne
#13 Le 03/06/2011, à 19:42
- gerarmentor
Re : [resolu] zenity et variables à espace
Tu sembles oublier la différence entre ${TEST[@]} avec et sans guillemets.
Avec guillemets, "${TEST[@]}" est égal à "${TEST[0]}" "${TEST[1]}" "${TEST[2]}" "${TEST[3]}" ...
et donc si un de ces éléments contient un espace, il ne sera pas interprété comme un caractère spécial.
Tout fonctionnera bien.
Et si on enlève les guillemets, ta solution d'ajouter des simples quotes n'empêcherait de toute façon pas l'espace d'être interprété.
Hors ligne
#14 Le 03/06/2011, à 19:46
- Levi59
Re : [resolu] zenity et variables à espace
Oui c'est ce que je venais de tester... C'est ce comportement de report des guillemets que je ne connaissais pas et du coups oui c'est évident que le problème n'en est pas un. ^^
Dernière modification par Levi59 (Le 03/06/2011, à 19:46)
Hors ligne
#15 Le 03/06/2011, à 20:37
- Hizoka
Re : [resolu] zenity et variables à espace
TEST+=(FALSE "$i")
putain...bien vu !
j'avais testé :
TEST+="FALSE \""$i\""
TEST+="FALSE "$i"
pas loin mais c'était pas encore ça
merci et bravo !
Dernière modification par Hizoka (Le 03/06/2011, à 20:41)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#16 Le 03/06/2011, à 23:19
- Hizoka
Re : [resolu] zenity et variables à espace
au final j'ai reussis à trouver ça
for i in *.txt ; do echo -e "FALSE\n$i" ; done | zenity --list --title="Mangas Update" --radiolist --column="Choix" --column="Animés"
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#17 Le 03/06/2011, à 23:44
- Watael
Re : [resolu] zenity et variables à espace
si le shell le permet, ou s'il existe dans /usr/bin/, utilise printf
printf 'FALSE\n%s\n' ./*.txt | zenity --list --title="Mangas Update" --radiolist --column="Choix" --column="Animés"
Dernière modification par Watael (Le 03/06/2011, à 23:46)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#18 Le 04/06/2011, à 00:03
- Hizoka
Re : [resolu] zenity et variables à espace
en effet, encore mieux
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#19 Le 04/06/2011, à 02:12
- gerarmentor
Re : [resolu] zenity et variables à espace
Solution qui ne fonctionnera pas si le nom de fichier contient plus d'une ligne (il faut avouer que c'est assez rare)
Hors ligne
#20 Le 04/06/2011, à 04:24
- Hizoka
Re : [resolu] zenity et variables à espace
en effet, mais je ne savais même pas qu'on pouvait sauter des lignes....
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#21 Le 04/06/2011, à 11:43
- AnsuzPeorth
Re : [resolu] zenity et variables à espace
en effet, mais je ne savais même pas qu'on pouvait sauter des lignes....
On en apprends tous les jours ! Vu comme ça, ca simplifie bien la gestion des espaces, effectivement.
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne